我想實現支持TCP/UDP協議的客戶端+服務器。這個想法是,相同的程序將在兩臺機器上運行,它們應該能夠相互通信。傳統上是爲客戶端創建一個類,爲服務器創建一個類(對於每個協議 - 因此總共有4個類),並在主要實例化客戶端對象和服務器對象?或者創建一個實現客戶端和服務器功能的類是一個很好的設計實踐。什麼是普遍接受的做法。 boost examples顯示了爲每個客戶端和服務器實現的一個類。使用boost的C++中的TCP和UDP客戶端+服務器
0
A
回答
1
TCP/UDP協議可以被另一組類(可以稱爲通道,流,協議等)抽象。然後,您將擁有Client類和Server類,並且它們中的每一個都可以使用TcpChannel和UdpChannel(或兩者都可以在運行時在它們之間進行選擇)。這是我看到這個實現的方式。 Channel然後可以提供服務器和客戶端使用的讀取和寫入方法。
相關問題
- 1. android客戶端服務器UDP或TCP?
- 2. UDP服務器,TCP客戶端?
- 3. TCP/UDP客戶端/服務器程序
- 4. c#TCP/IP服務器和客戶端
- 5. UDP服務器和UDP客戶端
- 6. Heroku上的Java TCP/UDP服務器和客戶端
- 7. 客戶端的C++ boost/asio服務器
- 8. java的TCP客戶端和服務器
- 9. c - 具有多個客戶端的UDP客戶端服務器
- 10. udp客戶端服務器程序c
- 11. c#UDP客戶端服務器問題
- 12. C#UDP服務器/客戶端 - NAT
- 13. 使用UDP中的服務器 - 客戶端文件傳輸C
- 14. 客戶端服務器 - (TCP)
- 15. TCP客戶端服務器
- 16. Java中的TCP客戶端和C中的服務器
- 17. C中的TCP客戶端和Java中的服務器
- 18. C#TCP服務器客戶端
- 19. c#tcp服務器客戶端問題
- 20. C++多客戶端TCP服務器
- 21. C#中TCP服務器的TCP客戶端線程中斷#
- 22. UDP客戶端和服務器連接
- 23. Ping服務器和Ping客戶端(UDP)
- 24. 雙向UDP客戶端和服務器?
- 25. UPD客戶端和UDP服務器
- 26. TCP客戶端和服務器
- 27. netty tcp bytebuffer服務器和客戶端
- 28. C#客戶端服務器TCP客戶端收聽
- 29. 的UnknownHostException在UDP客戶端/服務器
- 30. java中的TCP服務器和TCP客戶端
您需要不同的TCP客戶端和服務器類,但UDP類可能是相同的。 [via-httplib](https://github.com/kenba/via-httplib)中的通信代碼支持TCP和UDP協議,基於boost asio。 – kenba