[英]Creating a Client/Server Chat Client in C#
我想創建一個簡單的客戶端/服務器聊天應用程序。
這個想法是,當一個客戶端向服務器發送消息時,服務器會將更改通知其他客戶端。
無需解決防火牆問題的最佳方法是什么?
可以通過http
上的Web服務完成嗎?
帶有wsHttpBinding
或basicHttpBinding
WCF服務可與防火牆配合使用。 您將面臨的主要問題是服務器通知客戶端,可能需要修改其防火牆設置。
服務器需要在端口上偵聽。 該端口需要通過防火牆進行訪問。 這兩件事是不可避免的。 通常,您將讓服務器偵聽您組成的端口號(大於1024以避免沖突)。 然后,您將讓防火牆將該端口傳遞到服務器。
如果您期望普通人托管服務器,那么事情將有些棘手。 您需要他們在其家用路由器上啟用端口轉發,或者需要具有集中式服務器以進行配對。
這就是Skype或Halo的工作方式(Skype將中央服務器稱為超節點)。 這是一個例子。
C是中央Skype服務器。 A是愛麗絲,B是鮑勃。 愛麗絲想給鮑勃打電話。
C監聽某個端口,C的防火牆允許它通過
A登錄到Skype,連接到C
B登錄到Skype,連接到C
A向C發送一條消息,稱他們想呼叫B
C這樣向B發送一條消息(因為B已經連接好了)。
呼叫接通后,A和B將所有消息發送給C,C將它們轉發到目的地。
您可以在服務器上運行HTTP服務器,並在每個客戶端上保持打開狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.