快捷搜索:  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);

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: