我如何查看套接字是否已连接到我的服务器?

How can i see if a socket is already connected to my server?

我正在 java 中编写一个 client/server 应用程序。此代码是否正确检查客户端的某些套接字是否已连接到我的服务器?我很新,这是我的第一个具有此功能的应用程序,所以不要杀了我...

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");
    }
}

没有

while (listening) {
    System.out.println("Hearing");
    Socket mysocket=serverSocket.accept();

执行这行代码的结果是 IOExceptionSocket 连接到客户端。

    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();

这一切都毫无意义。移除。