Socket服务器与客户端双向通信实例.doc

上传人:re****.1 文档编号:559421322 上传时间:2022-09-18 格式:DOC 页数:8 大小:204.50KB
返回 下载 相关 举报
Socket服务器与客户端双向通信实例.doc_第1页
第1页 / 共8页
Socket服务器与客户端双向通信实例.doc_第2页
第2页 / 共8页
Socket服务器与客户端双向通信实例.doc_第3页
第3页 / 共8页
Socket服务器与客户端双向通信实例.doc_第4页
第4页 / 共8页
Socket服务器与客户端双向通信实例.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《Socket服务器与客户端双向通信实例.doc》由会员分享,可在线阅读,更多相关《Socket服务器与客户端双向通信实例.doc(8页珍藏版)》请在金锄头文库上搜索。

1、Socket服务器与客户端双向通信实例usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Net;usingSystem.Net.Sockets;/添加命名空间usingSystem.Threading;/添加命名空间namespaceWFAsynSocketpublicpartialcla

2、ssForm1:FormThreadLisThread;SocketLisSocket;SocketnewSocket;EndPointpoint;stringstrmes=String.Empty;intport=8000;/定义侦听端口号publicForm1()InitializeComponent();privatevoidbtn_Listen_Click(objectsender,EventArgse)LisThread=newThread(newThreadStart(BeginListern);/开线程执行BeginListern方法LisThread.Start();/线程开始

3、执行publicIPAddressGetIP()/*获取本地服务器的ip地址*/IPHostEntryiep=Dns.GetHostEntry(Dns.GetHostName();IPAddressip=iep.AddressList0;returnip;publicvoidBeginListern()LisSocket=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);/实例化SocketIPAddressServerIp=GetIP();/*获取本地服务器的ip地址*/IPEndPointiep

4、=newIPEndPoint(ServerIp,port);LisSocket.Bind(iep);/*将Socket绑定ip*/toolStripStatusLabel1.Text=iep.ToString()+正在监听;LisSocket.Listen(50);/Socket开始监听newSocket=LisSocket.Accept();/获取连接请求的Socket/*接收客户端Socket所发的信息*/while(true)trybytebyteMessage=newbyte100;newSocket.Receive(byteMessage);/接收信息MessageBox.Show(

5、Encoding.Default.GetString(byteMessage);Control.CheckForIllegalCrossThreadCalls=false;point=newSocket.RemoteEndPoint;/获取客户端的Socket的相关信息IPEndPointIPpoint=(IPEndPoint)point;strmes+=IPpoint.Address.ToString()+DateTime.Now.ToString()+说+Encoding.Default.GetString(byteMessage).Trim(newchar0)+rn;this.richT

6、extBox1.Text=strmes;catch(SocketExceptionex)toolStripStatusLabel1.Text+=ex.ToString();privatevoidbtn_Cancel_Click(objectsender,EventArgse)tryLisSocket.Close();/关闭SocketLisThread.Abort();/线程停止LisThread=null;catch(Exceptionex)MessageBox.Show(ex.Message);finallyApplication.Exit();privatevoidbtn_Send_Cl

7、ick(objectsender,EventArgse)bytebyteData=Encoding.Default.GetBytes(this.richTextBox2.Text);newSocket.Send(byteData);/发送信息即由服务器往客户端上发信息点击开始监听按钮之后客户端则只要使用Socket去连接到服务器端的Socket就可实现往服务器上发信息usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSy

8、stem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Threading;usingSystem.Net.Sockets;usingSystem.Net;namespaceWFAsynSoketClientpublicpartialclassForm1:FormpublicstaticSocketClientSocket;publicForm1()InitializeComponent();/*往服务器上发送信息按钮事件*/privatevoidbtn_Send_Click(objectsender,EventArgs

9、e)if(ClientSocket.Connected)/判断Socket是否已连接byteSendMessage=newbyte100;SendMessage=Encoding.ASCII.GetBytes(this.richTextBox1.Text);ClientSocket.Send(SendMessage);/从数据中的指示位置开始将数据发送到连接的Socket。MessageBox.Show(Encoding.Default.GetString(SendMessage)+发送成功!);elseMessageBox.Show(未建立连接!);/*退出按钮*/privatevoidbt

10、n_Cancel_Click(objectsender,EventArgse)ClientSocket.Shutdown(SocketShutdown.Both);/发送完成之后停止SocketClientSocket.Close();/发送完成之后关闭SocketApplication.Exit();/*接收来自服务器上的信息*/publicvoidtargett()this.toolStripStatusLabel1.Text=已经建立连接准备接受数据;while(true)bytebytes=newbyte100;intrev=ClientSocket.Receive(bytes,bytes.Length,0);/将数据从连接的Socket接收到接收缓冲区的特定位置

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号