嗨,我使用下面的代碼在服務器端對多個客戶端連接..Java:帶有多個連接的Handelling套接字?
public class Tcpfileserver extends Thread
{
private ServerSocket serverSocket;
public static void main(String[] args)
{
Tcpfileserver obj=new Tcpfileserver();
obj.start();
}
public void run()
{
serverSocket = new ServerSocket(3000);
while(true)
{
Socket socket = serverSocket.accept(); // accept connection
TcpThread t = new TcpThread(socket); // make a thread of it
//System.out.println("Remote IP:"+socket.getInetAddress());
//System.out.println("Remote Port:"+socket.getPort());
t.start();
}}
但是當多個客戶端連接到我的服務器他們中的一些超時,爲什麼會出現從我身邊的延遲接受立即連接?
@bt問題是不是連接數!!有時第二個客戶端還要timout..if只有一個客戶端連接 – Harinder
是這是從你的角度看待多個連接的正確方法? – Harinder
是的,我認爲。你有沒有檢查過這個命令的輸出「netstat -a」?它應該像你的3000端口應該一直處於監聽狀態,並且有一個本地端口說TIME_WAIT,並且建立的連接應該處於ESTABLISHED狀態。 – peeyush