如果一臺機器正在運行,某些端口上偵聽的服務器應用程序(比如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. 在同一臺機器上運行兩個Jetty服務器
- 2. 同一臺機器上的Git客戶機和服務器
- 3. TopShelf在同一臺機器上安裝多個相同的服務
- 4. 一臺機器上有多個websocket服務器
- 5. 在同一臺機器上使用IIS服務器和wamp服務器
- 6. 在多臺服務器上同步cronjob
- 7. Jenkins和OS X服務器在同一臺機器上
- 8. ArangoDB在同一臺服務器上的多個實例
- 9. 在同一臺服務器上配置多個位置的nginx
- 10. 配置服務器同時在多臺客戶機上執行服務器上的Matlab,SPSS等服務器
- 11. PHP在一臺服務器上工作,但不在另一臺服務器上
- 12. Codeigniter在一臺服務器上工作,但不在另一臺服務器上
- 13. 在一臺Ubuntu服務器上運行多個elasticsearch節點作爲服務
- 14. 在同一臺服務器上提供多個mercurial存儲庫
- 15. Redis服務器在同一主機上的多個集羣
- 16. 可能在同一臺機器上有多個SAME WCF窗口服務
- 17. QuerySelectField在一臺服務器上工作,在另一臺服務器上打破,使用相同的代碼
- 18. 另一臺服務器機
- 19. Java查找兩臺服務器是否在同一臺機器上運行
- 20. 如何同步多臺客戶機上的服務器列表?
- 21. 在同一臺服務器上運行多個Microsoft主數據服務實例
- 22. 服務器和客戶機在同一臺機器上,沒有環回
- 23. 在同一臺機器上託管WWW和RESTful服務
- 24. zend服務器和xampp在同一臺計算機上
- 25. 多臺Informatica Powercenter客戶機在同一臺機器上?
- 26. 在同一臺服務器上爲不同環境運行delayed_job
- 27. 在同一臺機器上設置的JBoss的多個實例
- 28. Capistrano,SVN回購和網絡服務器在同一臺機器
- 29. 從同一臺服務器上的本地主機獲取
- 30. 2臺不同服務器如何在同一臺「機器」中進行通信?
的可能的複製[兩個應用程序可以收聽到相同的端口?](http://stackoverflow.com/questions/1694144/can-two-applications-listen-to-the-same -port) – Cjen1
@Micky,我簡直不明白這是如何工作的,包怎麼不混合? – LimS