SOCKET通信
一、SOCKET通信的基本步骤
1、打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求。
2、等待客户请求到达该端口。
3、接收到重复服务请求,处理该请求并发送应答信号。
4、返回第二步,等待另一客户请求
5、关闭服务器。
客户方:
1、打开一通信通道,并连接到服务器所在主机的特定端口。
2、向服务器发送服务请求报文,等待并接收应答;继续提出请求……
3、请求结束后关闭通信通道并终止。
用到的类(IPAddress、Dns、Socket、IPEndPoint)1.利用Tcp协议编程
1)服务器端:
a)建立TCPTcpListener对象。
TcpListenertl=new TcpListener(端口号);
b)启动
tl.Start();
c)用获取连接进来的套接字(Socket)
Sockets=myList.AcceptSocket();
d)通过Socket的Receive方法获取客户端发送的数据
byte[] result=new byte[1024];
intk=s.Receive(result);
e)通过Socket的Send方法向客户端发送数据
byte[]st=System.Text.Encoding.Default.GetBytes(“text”); s.Send(st);
f)在通讯结束后,需要释放资源结束监听
s.Close();
tl.Stop();
2)客户端:
a)建立TCP客户端TcpClient对象。
TcpClienttcpclnt = new TcpClient();
b)连接服务器
tcpclnt.Connect(IP地址字符串,端口号);c)获得客户端网络传输流
Streamstm =tcpclnt.GetStream(); d)通过Stream的Write方法向服务器端发送的数据e)通过Stream的Read方法读取服务器段发来的数据f)在通讯结束后,需要释放资源,结束和服务器的连接
tcpclnt.Close();
2.利用UDP协议编程
a)建立UDP客户端UdpClient对象。
UdpClientuc=new UdpClient(端口号);
b)连接对方远程主机
uc.Connect(IP地址,对方远程主机的端口号);
c)通过uc的Receive方法获取远程主机发送来的数据
IPEndPointip=new IPEndPoint(IPAddress.Parse(IP字符串),端口号);
byte[]b=uc.Receive(ref ip);
e)通过uc的Send方法向远程主机发送数据
byte[]st=System.Text.Encoding.Default.GetBytes(“text”); uc.Send(st);
f)在通讯结束后,需要释放资源
uc.Close();
Socket.Connect方法:建立到远程设备的连接
publicvoid Connect(EndPoint remoteEP)(有重载方法)
Socket.Send方法:从数据中的指示位置开始将数据发送到连接的Socket。
publicint Send(byte[], int, SocketFlags);(有重载方法)Socket.SendTo 方法将数据发送到特定终结点。
publicint SendTo(byte[], EndPoint);(有重载方法)
Socket.Receive方法:将数据从连接的Socket接收到接收缓冲区的特定位置。
publicint Receive(byte[],int,SocketFlags);
Socket.ReceiveFrom方法:接收数据缓冲区中特定位置的数据并存储终结点。
publicint ReceiveFrom(byte[], int, SocketFlags, ref EndPoint); Socket.Bind方法:使Socket与一个本地终结点相关联:publicvoid Bind( EndPoint localEP );
Socket.Listen方法:将Socket置于侦听状态。
publicvoid Listen( int backlog );
Socket.Accept方法:创建新的Socket以处理传入的连接请求。
publicSocket Accept();
Socket.Shutdown方法:禁用某Socket上的发送和接收publicvoid Shutdown( SocketShutdown how );
Socket.Close方法:强制Socket连接关闭
publicvoid Close();
二、SOCKET测试工具有哪些
三、流程图
Copyright © 2019- 580590.com 版权所有
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务