实验六 即时通信系统

实验六 即时通信系统

ID:38698403

大小:102.00 KB

页数:14页

时间:2019-06-17

实验六  即时通信系统_第1页
实验六  即时通信系统_第2页
实验六  即时通信系统_第3页
实验六  即时通信系统_第4页
实验六  即时通信系统_第5页
资源描述:

《实验六 即时通信系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验六即时通信系统1.实验目的(1)练习TcpClient和TcpListener的用法。(2)练习NetworkStream的用法。(3)练习StreamReadr和StreamWriter的用法。(4)练习线程的创建和使用方法。(5)练习解决TCP协议消息边界问题的另一种方法。2.建议用时建议用4-6小时完成本实验,或者根据自己的理解情况调整实际需要的时间。3.实验内容开发一个简单的基于TCP的即时通信系统,服务器端和客户端设计界面分别如下图所示。功能要求:(1)任何一个客户端,均可以与服务器进行

2、通信。(2)服务器要能显示客户端连接的状态,当客户端连接成功后,要自动及时告知客户端已经连接成功的信息。(3)客户端和服务器建立连接后,即可以和服务器聊天,也可以和其他任何客户聊天,用StreamReader和StreamWriter对象实现字符串的接收和发送。(4)不论客户端何时退出程序,服务器都要做出正确判断,并显示该客户连接和断开连接的情况。图1-3客户端设计界面图1-2服务器设计界面4.实验要求(1)使用强类型的List泛型列表userList保存连接的用户。(2)定义委托解决一个线程调用另一

3、个线程控件的问题。5.实验步骤提示服务器端:(1)创建一个名为SyncChatServer的Windows应用程序,将Form1.cs换名为MainForm.cs,设计界面如图1-2所示。(2)在解决方案资源管理器中,鼠标右键单击项目名,选择【添加】à【类】,添加一个类文件User.cs,用于保存与客户通信需要的信息。参考代码如下。classUser{publicTcpClientclient{get;privateset;}publicStreamReadersr{get;privateset;}p

4、ublicStreamWritersw{get;privateset;}publicUser(TcpClientclient){this.client=client;NetworkStreamnetStream=client.GetStream();sr=newStreamReader(netStream,System.Text.Encoding.UTF8);sw=newStreamWriter(netStream,System.Text.Encoding.UTF8);}publicvoidClose

5、(){sr.Close();sw.Close();client.Close();}}(3)在SyncChatServer中添加对应的代码和事件。代码如下。publicpartialclassMainForm:Form{///

保存连接的所有用户privateListuserList=newList();///使用的本机IP地址IPAddresslocalAddress;///监听端口

6、summary>privateconstintport=51888;privateTcpListenermyListener;///

是否正常退出所有接收线程boolisNormalExit=false;publicMainForm(){InitializeComponent();listBoxStatus.HorizontalScrollbar=true;IPAddress[]addrIP=Dns.GetHostAddresses(Dns.GetHostName(

7、));localAddress=addrIP[0];buttonStop.Enabled=false;}///

【开始监听】按钮的Click事件privatevoidbuttonStart_Click(objectsender,EventArgse){myListener=newTcpListener(localAddress,port);myListener.Start();AddItemToListBox(string.Format("开始在{0}:{1}监听客

8、户连接",localAddress,port));//创建一个线程监听客户端连接请求ThreadmyThread=newThread(ListenClientConnect);myThread.Start();buttonStart.Enabled=false;buttonStop.Enabled=true;}///

接收客户端连接privatevoidListenClientConnect(){while(true)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。