Socket连接被拒绝

我在本地建立一个Socket服务端和客户端。先启动的服务端,正常启动,客户端启动时报错:java.net.ConnectException: Connection refused: connect,连接被拒绝,我的防火墙已经关闭了啊。到底是什么问题呢。
cilent:
package ss;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class aa {

Socket client;

PrintWriter pw;

public aa() throws UnknownHostException, IOException {  
    client=new Socket(InetAddress.getLocalHost(),7777);  
    pw=new PrintWriter(client.getOutputStream());  
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));  
    pw.write(br.readLine());  
    pw.close();  
    br.close();  
}  
public static void main(String[] args) {  
    try {  
        new aa();  
    } catch (UnknownHostException e) {  
        e.printStackTrace();  
    } catch (IOException e) {  
        e.printStackTrace();  
    }  
}  

}

服务端:
package ss;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

import test.Server;

public class ser{
private Socket socket;

private ServerSocket ss;

public ser() throws IOException {

ss = new ServerSocket(7777);

while (true) {

socket = ss.accept();

BufferedReader br = new BufferedReader(new InputStreamReader(socket

.getInputStream()));

System.out.println("you input is : " + br.readLine());

}

}

public static void main(String[] args) {

try {

new Server();

} catch (Exception e) {

e.printStackTrace();

}

}

}

[quote]我是先启动服务端的,而且是在服务端没有关闭的情况下启动的客户端。但是就是有报错呀。我冤啊。。。 [/quote]
我没错啊。我只是把你的new Server()改成了new ser()就好了。

client=new Socket(InetAddress.getLocalHost(),7777);

换成127.0.0.1以及具体的IP试试

[code="java"] client=new Socket(InetAddress.getLocalHost(),7777); [/code]
你确定Socket服务器IP获得了?

晕,我帮你看了。不报任何错误,是你操作的问题,比如你把服务器启动了,这个时候就不要关,直接另外启动客户端就行了。估计你是在启动服务器了之后,又关掉了,然后启动的客户端。

没有任何问题的

new Server().ser();

你没调这个方法。。。。

package ss;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

import test.Server;

public class ser{
private Socket socket;

private ServerSocket ss;

public ser() throws IOException {

ss = new ServerSocket(7777);

while (true) {

socket = ss.accept();

BufferedReader br = new BufferedReader(new InputStreamReader(socket

.getInputStream()));

System.out.println("you input is : " + br.readLine());

}

}

public static void main(String[] args) {

try {

new Server()[color=red].ser()[/color];

} catch (Exception e) {

e.printStackTrace();

}

}

}

你的代码根本没有监听服务嘛!

你好,请你在运行服务端之后,用工具(比如,Tcpview)查看一下,看看 7777 这个端口是否已经被使用。同时,保证,在启动前 7777 端口处于未使用中。

new Server()应该是new ser(),是lz不小心写错的应该,反正我就这样就好了。

你new Server()之后没有调用ser()方法,就没有 new ServerSocket(7777); 就没有进入while true,就没有accept啊!

也可以运行 cmd-netstat -nao 看下你serverSocket所监听的端口有没有存在。

[quote]问题补充:
freish 写道
package ss;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

import test.Server;

public class ser{
private Socket socket;

private ServerSocket ss;

public ser() throws IOException {

ss = new ServerSocket(7777);

while (true) {

socket = ss.accept();

BufferedReader br = new BufferedReader(new InputStreamReader(socket

.getInputStream()));

System.out.println("you input is : " + br.readLine());

}

}

public static void main(String[] args) {

try {

new Server().ser();

} catch (Exception e) {

e.printStackTrace();

}

}

}

你的代码根本没有监听服务嘛!

大哥。这个是无参构造啊。。
[/quote]

我看走眼了,你为什么不是new ser()?new Server()是什么?Server的代码在哪里