好了,所以我是套接字編程的新手,我正在製作一個將從服務器運行的遊戲。我將試着能夠讓一百個客戶端運行我的服務器。我應該爲每個客戶製作一個偵聽器實例還是一個?此外,我試圖在100個不同的端口上創建100個監聽器,但是當我運行我的服務器時,在嘗試啓動監聽器時出現錯誤。該遊戲將成爲3D RPG/MMORPG。儘管大部分遊戲邏輯都在客戶端。你認爲我應該怎麼做?服務器/客戶端套接字
1
A
回答
2
如果您打算使用TCP套接字,那麼您應該創建一個偵聽套接字(即創建一個套接字,將其綁定到特定的端口並在其上調用Listen())。然後,當你接受一個連接,並得到另一個插座,您可以用接收/從/發送數據到客戶端:
Socket socketListener;
// create listening socket
socketListener = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
IPEndPoint ipLocal = new IPEndPoint(IPAddress.Any, 30120); // use port 30120
//bind to local IP Address.
socketListener.Bind(ipLocal);
//start listening
socketListener.Listen(4);
while (true) // loop that accepts client connections
{
Socket socketWorker = socketListener.Accept();
HandleClientConnection(socketWorker); // your routine where you communicate with a client
}
而且,考慮使用異步模式插座,這將是在性能方面更高效。
0
您每個服務器端點只有一個偵聽器。偵聽器將爲使用不同端口的客戶端創建一個連接。這是你實際用於溝通的這種聯繫。
相關問題
- 1. PHP套接字服務器/客戶端
- 2. 客戶端服務器udp套接字
- 3. 套接字java客戶端服務器
- 4. 客戶端 - 服務器套接字
- 5. 客戶端服務器套接字C#
- 6. Python服務器客戶端套接字
- 7. Java套接字客戶端/服務器
- 8. C套接字服務器,Java套接字客戶端:阻塞!
- 9. Python套接字客戶端到Java套接字服務器
- 10. C#套接字TCP客戶端/服務
- 11. 客戶端 - 服務器Unix套接字和端口轉發
- 12. 使用多個端口的套接字客戶端/服務器
- 13. Java套接字。服務器端與客戶端通訊
- 14. Java客戶端/服務器套接字端口分配
- 15. 無法使用套接字連接客戶端到服務器
- 16. 接受客戶端的Java服務器套接字
- 17. php套接字服務器檢查客戶端是否連接
- 18. 服務器/客戶端套接字連接
- 19. 同時關閉服務器和客戶端套接字連接
- 20. Android客戶端套接字無法連接到服務器
- 21. Java雙向套接字連接(服務器/客戶端)
- 22. 客戶端和服務器Android套接字連接
- 23. 無法連接Java套接字服務器和客戶端
- 24. 套接字 - Android客戶端到C#服務器連接
- 25. 讓套接字服務器接受多個客戶端
- 26. 未從服務器接收Android套接字客戶端
- 27. Javascript客戶端如何連接到PHp套接字服務器?
- 28. 多套接字客戶端連接到服務器
- 29. 客戶端和服務器套接字連接
- 30. 接受客戶端請求與服務器套接字