我正在製作客戶端/服務器應用程序,應用程序有一個位於遠程主機上的服務器應用程序和一個客戶端應用程序可能位於具有不同IP地址的不同客戶端上。 服務器應用程序將在端口80上有他的IP地址,並且它將監聽不同的客戶端請求。 此客戶端/服務器應用程序還支持實時聊天,所以.......,如果不同的客戶端位於防火牆和路由器之後,服務器是否可以通過這些防火牆和路由器向客戶端應用程序發送實時消息,然後等待他們的迴應。通過客戶端防火牆和路由器通過system.net.sockets構建客戶端/服務器應用程序
回答
如果端口是開放的......是的。
解決此問題的一種常見方法是在服務器上放置請求,然後對其進行響應。大多數防火牆不會允許您向客戶端發送請求。所以,你向服務器發出一個異步請求,服務器不會返回,直到發送給客戶端的內容有意義。然後,在發送響應之後,請客戶端暫停對下一個服務器數據的另一個請求。
非常有趣的馬特。 但是,我怎麼能做到異步請求到服務器,例如。 1)客戶端通過他的動態IP和端口(123.123.123.123:12345)連接到服務器到服務器的IP和端口(456.456.456.456:80) 2)服務器(456.456.456.456:80)響應客戶端(123.123.123.123:12345) 3)客戶端(123.123.123.123:12345)發出另一個請求,而沒有任何要求到服務器(456.456.456.456:80),然後等待響應? 這是你的意思嗎? – Massimo 2010-12-17 07:40:31
如果我正確地理解你,那麼是的。客戶端必須向服務器發出請求並等待響應。服務器只在客戶端關心的事情發生時才響應,否則服務器只會保持連接打開。一旦客戶端得到響應,它會發送另一個請求,並繼續這樣的通信。 – 2010-12-17 15:31:46
感謝馬特。 我正在尋找一些異步服務器套接字編程的例子,我發現這一個服務器端http://msdn.microsoft.com/en-us/library/fx6588te.aspx和同一頁的結尾有一個客戶端的例子是我的客戶端/服務器應用程序將是多客戶端。由於我是socket編程新手,你能幫助我嗎,我是否正確? 再次提前感謝。 – Massimo 2010-12-20 12:00:10
- 1. 客戶端通過防火牆客戶端
- 2. 客戶端 - 客戶端通過服務器通信
- 3. 防火牆阻止客戶端/服務器通信
- 4. 如何讓服務器通知客戶端在防火牆後
- 5. 配置的SQL Express瀏覽器客戶端通過防火牆
- 6. 的NodeJS:客戶端到客戶端通過服務器
- 7. Flex構建客戶端和服務器端的應用程序
- 8. 構建客戶端/服務器基於Windows的應用程序通過C#
- 9. 識別路由器/防火牆後面的客戶端
- 10. react路由器:客戶端路由與服務器端路由
- 11. 客戶端通過服務器到特定的客戶端通信
- 12. 我可以通過服務器實現客戶端 - 客戶端通信嗎?
- 13. 通過適用於Android的PHP服務器進行客戶端與客戶端通信應用程序
- 14. WCF通過防火牆推送到客戶端?
- 15. Windows Phone 8和LAN通信客戶端 - 服務器 - 客戶端
- 16. C#服務器客戶端應用程序(一個服務器多客戶端)
- 17. 路由器客戶端端
- 18. 服務器客戶端應用程序
- 19. 客戶端/服務器應用程序
- 20. 客戶端 - 服務器應用程序
- 21. 通過Web服務通知服務器到客戶端
- 22. winsock客戶端和服務器通信
- 23. 通過XML與服務器和Android客戶端進行通信
- 24. wsDualHttpBinding客戶端地址和防火牆
- 25. WCF客戶端和防火牆
- 26. 通過服務器端腳本使用node-ncurses客戶端?
- 27. 通過客戶端
- 28. 防止System.Net.Sockets中的MITM服務器客戶端
- 29. WCF服務與網絡應用程序客戶端和Android客戶端通信
- 30. 服務器端客戶端程序C
客戶端應用程序有他的動態IP地址和端口每次都要連接到網絡。 – Massimo 2010-12-17 07:12:05
客戶端應用程序有他的動態IP地址和端口每次都要連接到網絡。 我的應用程序始終在網絡上,並且修復了Ip和端口(80)open.1 當客戶端應用程序調用服務器應用程序時,它通過系統分配的IP和端口來調用它,然後服務器對其進行響應到它的IP和端口。 但是在這一點上,服務器可以在不接收其他呼叫的情況下對客戶端執行另一次發送操作? – Massimo 2010-12-17 07:22:12