import java.io.*;
import java.net.*;
public class ChatServer {
public static void main(String[] args){
/*InetAddress ServerIPaddress=null;
try { ServerIPaddress=InetAddress.getLocalHost();}
catch (UnknownHostException e) {}
System.out.println(ServerIPaddress);
*/
try {
ServerSocket ss=new ServerSocket(8888);
while(true){
Socket s=ss.accept();
System.out.println("a client is connected!"+s.getInetAddress());
/* BufferedReader re = new BufferedReader(new InputStreamReader(s.getInputStream()));
String str = re.readLine();
System.out.println(str);
re.close();
*/
/*DataInputStream dis = new DataInputStream(s.getInputStream());
String str = dis.readUTF();
System.out.println(str);
dis.close();*/
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
一运行就出来结果
a client is connected!/127.0.0.1
怎么办
你监听的是所有地址啊,这个8888很可能被其他程序使用的,即虽然你自己的客户端没有连接,但是不能保证别的程序使用了8888端口。建议换一个端口试试,我的电脑商就有一个进程占用了8888端口。
建议楼主先调试一下,看看哪里有问题,或者到哪里运行了client;如果说端口被占用,提示的是:JVM_Bind(端口被占用)。或者可以写一个代码查看是否有端口被占用:
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class sampletest
{
public static void main(String[] args)
{
for(int i=1;i<256;i++)
{
try
{
InetAddress localHost=InetAddress.getLocalHost();
Socket socket=new Socket(localHost,i);
System.out.println("本机已经使用了端口:"+i);
}
catch(UnknownHostException e)
{
//e.printStackTrace();
}
catch(IOException e)
{
// e.printStackTrace();
}
}
System.out.println("执行完毕!");
}
}