问答详情
源自:3-5 使用多线程实现多客户端的通信

服务器线程

按照老师的做法,为什么我启动了服务端,和客户端,服务器端显示了客户端连接1,也会立即显示客户端连接2、http://img.mukewang.com/5666cffe0001e96803800093.jpg

public class Server {
public static void main(String[] args){
try {
//1.创建服务器端socket,并指定端口号监听
ServerSocket serversocket = new ServerSocket(8888);
//2.开始监听客户端请求
Socket socket = null;
System.out.println("***服务器即将启动,等待客户端的连接***");
int count =0;
while(true){
socket = serversocket.accept();
ServerThread st = new ServerThread(socket);
st.start();
count++;
System.out.println("客户端连接数:"+count);
//InetAddress address = socket.getInetAddress();
//System.out.println("来自客户端地址:"+address.getHostAddress());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}


提问者:Kristchen 2015-12-08 20:41
微课

个回答

  • sxian_wang
    2015-12-08 23:01:40
    已采纳

    肯定是你对着视频敲代码的时候敲错了。你检查下一下几个地方:

    1. 定义的表示客户端数量的变量初始化是不是0

    2. 你的System.out.println()语句是不是在accept()之前

      如果不是这两个地方有问题,你把serverSocket的代码贴上来,我给你看看

  • Kristchen
    2015-12-08 23:12:13

    http://img.mukewang.com/5666f3280001fd0506600314.jpg我觉得是线程问题吧