欢迎来到天天文库
浏览记录
ID:19415928
大小:29.82 KB
页数:9页
时间:2018-10-02
《基于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
此文档下载收益归作者所有