我正在用java编写一个客户机/服务器应用程序。此代码是否正确地检查客户端的某个套接字是否已连接到我的服务器?我很新,这是我的第一款应用,所以不要杀了我.
package ServerCommunication;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class MultiServer {
public void openSocket() throws IOException {
ServerSocket serverSocket = null;
boolean listening = true;
MultiServerThread w=null;
try {
serverSocket = new ServerSocket(1633);
System.out.println("Waiting on 1633.");
} catch (IOException e) {
System.err.println("Could not listen on port: 1633.");
System.exit(-1);
}
while (listening) {
System.out.println("Hearing");
Socket mysocket=serverSocket.accept();
if(mysocket.isConnected())
System.out.println("Already connected");
else{
System.out.println("Need to create one");
w = new MultiServerThread(mysocket);
Thread t = new Thread(w);
t.start();
}
}
serverSocket.close();
System.out.println("Multiserver closed");
}
}发布于 2016-12-21 00:51:28
不是的。
while (listening) {
System.out.println("Hearing");
Socket mysocket=serverSocket.accept();执行这一行代码的结果是连接到客户端的IOException或Socket。
if(mysocket.isConnected())毫无意义。是有关联的。删除。
System.out.println("Already connected");当然是有关联的。这就是accept()的作用。删除。
else{遥不可及。删除。
System.out.println("Need to create one");不,你不知道,移开。
w = new MultiServerThread(mysocket);
Thread t = new Thread(w);
t.start();这都是毫无意义的。删除。
https://stackoverflow.com/questions/41253456
复制相似问题