最近的項目中需要實現這樣一個功能,就是一個進程A發消息,進程B和進程C都能收到相同的消息,同樣,進程B發消息,進程A和進程C也都能收到消息,就像下圖中的描述。
使用一個中心服務器作為消息轉發樞紐,所有客戶端連接到服務器,發送消息到服務器后,服務器再將消息轉發給所有其他客戶端。
查詢了一些開源的庫,甚至還想在本地搭建一個MQTT來實現,最后覺得 ,還是造輪子吧,手搓一個更容易,先實現功能,以后優化的時候看看再選用別的方案,或者怎么著。
引言
使用TCP實現,TCP(傳輸控制協議)是一種面向連接的、可靠的、基于字節流的傳輸層通信協議。它通過三次握手建立連接,四次揮手關閉連接,保證了數據傳輸的可靠性和順序性。使用C語言實現一個簡單的TCP聊天服務器是理解網絡編程基礎概念的絕佳方式——不僅能掌握套接字(Socket)編程的核心流程,還能學習多線程如何協同處理并發連接。
包括服務器端(`server.c`)和客戶端(`client.c`)代碼,
server.c的完整代碼