如果一臺機器正在運行,某些端口上偵聽的服務器應用程序(比如9999),並在同一臺機器幾個客戶端應用程序打開一個TcpClient的(本地主機,9999)連接到同一臺服務器應用程序,會發生什麼? 這會造成某種碰撞嗎?在同一臺機器上的多個TcpClients作爲服務器
0
A
回答
0
在C#中TcpListener
正在等待來自AcceptSocket
或AcceptTcpClient
的客戶端的傳入連接。在成功的連接上,您可以獲得一個Socket
對象,該對象可用於與由客戶端IP標識的特定客戶端通信。如果與客戶端的連接在另一個線程中處理,而不是AcceptSocket
,則您的服務器應用程序可以同時與多個客戶端通信。例如服務器循環僅調用Accept
,並直接將Socket
移交給某個處理程序線程/任務。一般而言,對於傳入連接,您知道客戶端IP地址(和端口),並基於此連接可以將連接/數據複用到相應的套接字。 一個好的和完整的答案,但非C#特定是在這裏 TCP : two different sockets sharing a port?
在客戶端選擇一個隨機端口爲傳出連接。這由套接字/網絡系統完成
在互聯網範例中,端口號介於0和65535之間,並且由客戶端主機上運行的傳輸層軟件隨機選擇。這些被稱爲臨時端口(範圍從1024到49151)。
相關問題
- 1. 如何在同一臺機器上調試多個Sharepoint服務?
- 2. 在同一臺機器上運行兩個Jetty服務器
- 3. 同一臺服務器上的多個tomcat ... ajp停止工作
- 4. 同一臺機器上的Git客戶機和服務器
- 5. 運行不同的服務器作爲一臺服務器
- 6. TopShelf在同一臺機器上安裝多個相同的服務
- 7. 思考把一個SVN服務器和CI服務器在同一臺機器
- 8. 一臺機器上有多個websocket服務器
- 9. 多個站點,同一臺服務器
- 10. 在同一臺機器上使用IIS服務器和wamp服務器
- 11. 在多臺服務器上同步cronjob
- 12. Jenkins和OS X服務器在同一臺機器上
- 13. Virtuemart移動和臺式機在同一臺服務器上
- 14. 在同一臺服務器上配置多個位置的nginx
- 15. ArangoDB在同一臺服務器上的多個實例
- 16. 配置服務器同時在多臺客戶機上執行服務器上的Matlab,SPSS等服務器
- 17. WCF服務無法在同一臺機器上調用另一個WCF服務
- 18. Codeigniter在一臺服務器上工作,但不在另一臺服務器上
- 19. PHP在一臺服務器上工作,但不在另一臺服務器上
- 20. 在一臺Ubuntu服務器上運行多個elasticsearch節點作爲服務
- 21. 在同一臺服務器
- 22. 在同一臺服務器上提供多個mercurial存儲庫
- 23. 多個RabbitMQ實例在同一臺服務器和epmd上
- 24. Redis服務器在同一主機上的多個集羣
- 25. 多臺celerycam在同一臺服務器上運行
- 26. 同一服務器上的多個名稱服務器
- 27. 跨多個WCF服務共享會話託管在同一臺機器上
- 28. 可能在同一臺機器上有多個SAME WCF窗口服務
- 29. QuerySelectField在一臺服務器上工作,在另一臺服務器上打破,使用相同的代碼
- 30. 在一臺機器上管理多個獨立的Tomcat服務器
的可能的複製[兩個應用程序可以收聽到相同的端口?](http://stackoverflow.com/questions/1694144/can-two-applications-listen-to-the-same -port) – Cjen1
@Micky,我簡直不明白這是如何工作的,包怎麼不混合? – LimS