并发 ServerSocket 连接数

Concurrent ServerSocket connections

参考 Andrey Kozhanov 代码中的 this post

在 Server.java 中,第 14 行,方法 运行():

当我发送文件 "A" 并且在文件传输期间启动另一个客户端并发送其他文件 "B" 时,最后一次传输 ("B") 将阻塞直到 "A"完成。

如何实现并发服务器接收器?

谢谢。

您可以为每个新客户创建新线程。

public class Server extends Thread {

     ...

    @Override
    public void run() {
        try {
            ServerSocket serverSocket = new ServerSocket(PORT);

            while (true) {
                Socket s = serverSocket.accept();
                (new FileSaver(s)).start();

            }
         } catch (Exception e) {
            e.printStackTrace();
         }
     }

    ...
}
public class FileSaver extends Thread {

    Socket socket;

    public FileSaver(Socket socket) {
        socket = socket;
    }

    public saveFile() {
        // save the file here
    };

    public void run() {
        saveFile();
    }

}