?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

皇馬國際app:基于TCP異步的聊天室程序

?

話說這個學期我們有一門課叫“中心件”,師長教師叫我們做一個基于TCP的談天法度榜樣,主要布局如圖

1.所皇馬國際app有Client端必要與Server端連接(感到這句話好白癡,TCP肯定要連接了才能事情)

2.Client真個功能是可以群發和私聊(用過QQ都應該知道什么是群發和私聊吧),但都必須顛末Server端中轉,也便是實現了類似通訊中心件的功能。

PS:開始寫之前我是對收集編程這塊完全沒有熟識的,上網找了幾個TCP的法度榜樣,都是只能實現群發功能,或者只能實現client與server之間互相發的功能,

還沒有哪個是可以實現上面所說的功能的法度榜樣的(假如有的請留言給我,我去下一個下來進修一下,O(∩_∩)O感謝)。

實現措施有很多多少,用Socket類可以實現,用 TcpClient類和TcpListener類也可以實現,我就選擇了后者,由于對照簡單。

下面就列一下我用到的技巧:

多線程,異步回調,委托,設計模式的察看者模式…………

先讓大年夜家看一下客戶端和辦事器真個界面先吧(本人不會做界面,而且界面上有很多Label是用來反省接管的環境,請大年夜家選擇性過濾掉落)

server真個

client真個

1.Server端先啟動辦事,新建一個線程,綁定一個套接字,之后監聽

2.Client端點擊連接之后,就會與Server端建立連接。

3.每當有一個Client加入Server時,Server都邑看護所有的Client更新用戶列表(察看者模式)

4.點私聊和用戶之后,就可以私聊;點群發,就發個所有用戶。

代碼講解,先看皇馬國際app看辦理規劃

先說一下client端

聲明變量

System.Collections.ArrayList clientlist = new System.Collections.ArrayList();

private bool isExit = false;

private delegate void SetListBoxCallBack(string str);

private SetListBoxCallBack皇馬國際app setlistboxcallback;

private delegate void SetTextBoxRec皇馬國際appeiveCallBack(string str);

private SetTextBoxReceiveCallBack settextboxreceivecallback;皇馬國際app

private delegate void SetComboBoxCallBack(string str);

private SetComboBoxCallBack setcomboboxcallback;

private delegate void RemoveComboBoxItemsCallBack(DataReadWrite datareadwrite);

private RemoveComboBoxItemsCallBack removecomboboxcallback;

private TcpClient client;

private NetworkStream ns;

private ManualResetEvent allDone = new ManualResetEvent(false);

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

快三平台开户