请参阅Andrey Kozhanov的this post'代码。
在Server.java第14行,方法run():
当我发送文件" A"并且在文件传输期间启动另一个客户端并发送其他文件" B",此最后一次传输(" B")将阻止,直到" A"饰面。
如何实现并发服务器接收器?
感谢。
答案 0 :(得分:1)
您可以为每个新客户创建新的线程。
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();
}
}