簡體   English   中英

客戶端服務器關系混亂

[英]Client Server Relationship Confusion

我有5台電腦控制不同的硬件。 五個中的一個是另一個的主控制器4.我需要通過TCPIP將命令從主控制器發送到4個從控制器。 我對Socket編程的經驗非常有限。

在我有的系統中,哪個是客戶端,哪個是服務器? 在我看來,在配置中我有服務器和客戶端之間的界限可能會有偏差。 雙方都需要發送和接收命令,真的是客戶端和服務器的分離還是僅僅是慣例? 我可以使用同一個套接字將兩個端點同時作為客戶端和服務器嗎? 基本上我可以讓兩端聽取和發送請求嗎?

我在MSN上引用了示例代碼。

異步服務器套接字

異步客戶端套接字

就套接字連接而言,誰是客戶端以及誰是服務器只是誰接受連接(服務器)以及誰發起連接請求(客戶端)。

建立連接后,流量可以向任一方向傳輸(客戶端和服務器都可以發送和/或接收數據)。

您的主控制器是服務器。 當它上線時,它會聽你的奴隸宣布他們在線。 他們通過連接到服務器作為客戶端來完成此操作。 服務器將接受連接。

如果每個從站執行某些特殊功能,那么您應該有一條消息,客戶端可以發送到指示此功能的服務器。 如果系統正常運行需要所有從站,則需要等待所有從站發布其不同的功能。

然后,您的服務器可以向不同的客戶端發送消息或向所有客戶端廣播。 每個客戶端只能向服務器發送消息。 如果需要客戶端到客戶端的通信,您可能會在服務器中實現消息轉發。 這樣,您的客戶端無需知道其他客戶端的地址。 他們只需要知道他們的功能,這將用於將消息路由到適當的客戶端。

我基本上說你需要定義一個協議,你的節點將通過它來進行通信。 該協議將指示哪個節點將是服務器,哪個節點將是客戶端。

如果您的協議更適合於對等而不是客戶端 - 服務器,您可能需要考慮使用UDP而不是TCP。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM