基于tcpip聊天软件的代码设计

基于tcpip聊天软件的代码设计

ID:19415928

大小:29.82 KB

页数:9页

时间:2018-10-02

基于tcpip聊天软件的代码设计_第1页
基于tcpip聊天软件的代码设计_第2页
基于tcpip聊天软件的代码设计_第3页
基于tcpip聊天软件的代码设计_第4页
基于tcpip聊天软件的代码设计_第5页
资源描述:

《基于tcpip聊天软件的代码设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、致得E6协同文档管理系统基于TCP/IP聊天软件的代码设计服务器端开发的详细代码://添加的命名空间引用(原始生成的略)usingSystem.Net;usingSystem.Net.Sockets;usingSystem.Threading;usingSystem.IO;usingSystem.Security.Cryptography;namespaceEncryptedTcpServer{publicpartialclassFormServer:Form{//连接的用户System.Collections.Generic.ListuserList=

2、newList();privatedelegatevoidSetListBoxCallback(stringstr);privateSetListBoxCallbacksetListBoxCallback;privatedelegatevoidSetComboBoxCallback(Useruser);privateSetComboBoxCallbacksetComboBoxCallback;//使用的本机IP地址IPAddresslocalAddress;//监听端口privateintport=6788;//和书上一样privateTcpListen

3、ermyListener;publicFormServer(){InitializeComponent();listBoxStatus.HorizontalScrollbar=true;setListBoxCallback=newSetListBoxCallback(SetListBox);setComboBoxCallback=newSetComboBoxCallback(AddComboBoxitem);IPAddress[]addrIP=Dns.GetHostAddresses(Dns.GetHostName());localAddress=addrIP[0]

4、;buttonStop.Enabled=false;}//开始监听privatevoidbuttonStart_Click(objectsender,EventArgse){myListener=newTcpListener(localAddress,port);myListener.Start();SetListBox(string.Format("开始在{0}:{1}监听客户连接",localAddress,port));//创建一个线程监听客户端连接请求ThreadStartts=newThreadStart(ListenClientConnect);致得软件

5、—企业文档管理的风向标致得E6协同文档管理系统ThreadmyThread=newThread(ts);myThread.Start();buttonStart.Enabled=false;buttonStop.Enabled=true;}//接收客户端连接的线程privatevoidListenClientConnect(){while(true){TcpClientnewClient=null;try{//等待用户进入newClient=myListener.AcceptTcpClient();}catch{//当单击“停止监听”或者退出此窗体时AcceptTc

6、pClient()会产生异常,因此可以利用此异常退出循环break;}//每接受一个客户端连接,就创建一个对应的线程循环接收该客户端发来的信息ParameterizedThreadStartpts=newParameterizedThreadStart(ReceiveData);ThreadthreadReceive=newThread(pts);Useruser=newUser(newClient);threadReceive.Start(user);userList.Add(user);AddComboBoxitem(user);SetListBox(strin

7、g.Format("[{0}]进入",newClient.Client.RemoteEndPoint));SetListBox(string.Format("当前连接用户数:{0}",userList.Count));}}//接收、处理客户端信息的线程,每客户1个线程,参数用于区分是哪个客户privatevoidReceiveData(objectobj){Useruser=(User)obj;TcpClientclient=user.client;//是否正常退出接收线程致得软件—企业文档管理的风向标致得E6协同文档管理系统boolnormalExit=fal

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

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

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