我正在構建一個客戶端/服務器應用程序,用於某些套接字編程練習。套接字編程。程序創建2個連接,而不是1個
以下是我的服務器類的構建+運行方法。服務器等待來自客戶端的響應,在這種情況下,這只是一個字符串。
問題是它似乎在客戶端響應時建立兩個連接。從我的打印語句中,我可以看到run方法中的所有代碼都運行了兩次,然後再次運行第一行。
爲什麼要dateServer.accept();只接受一個客戶端請求的連接?
public Server() throws Exception {
dateServer = new ServerSocket(3001);
System.out.println("Server lytter på port 3000.");
this.start();
}
public void run() {
while (true) {
try {
System.out.println("waiting for client to request");
Socket client = dateServer.accept();
System.out.println("connection established");
Connect c = new Connect(client);
clients.add(c);
this.sleep(5000);
} catch (Exception e) {
}
}
}
- 編輯 - 一個可與服務器(消息是一個簡單的「包裝」類「) 客戶端代碼:
System.out.println("Write to server:");
String name = scanner.nextLine();
Message message = new Message(name, null);
oos.writeObject(message);
oos.flush();
向我們展示嘗試建立連接的客戶端代碼。由於某種原因它運行兩次? –
我已經添加了客戶端的有趣代碼 – Anders
它是一個客戶端試圖建立一個連接 – Anders