在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
讲udp应用之前,我先简单说一下udp与tcp之间的区别。
接下来简单讲一下udp收发包的应用(点对点的应用): 一,发包: 1,首先创建一个网络端点: IPEndPoint ipep = new IPEndPoint(IPAdress.Parse(ip), 9050); 此类有两个参数:第一个是接收端的IP,第二个是接收端的端口号。 2,接下来创建一个UdpClient对象: UdpClient udpClient=new UdpClient();
3,准备发送: 发送时候有同步和异步两种方式,两种方式都有多种重载方法,下面每个讲其中一种,具体用哪种,看各自的需要。 a.异步发送: 方法:BeginSend(...); 参数: BeginSend ( byte[] datagram,//要发送的数据字节数组 int bytes,//要发送的数据的长度 AsyncCallback requestCallback,//发送完成后的回调函数 object state//用户自己定义发送完成成后的返回状态,在requestCallback有体现。 ); EndSend ( IAsyncResult result//BeginSend返回的IAsyncResult s ) 使用: public void SendData(string ip,int port,object data)
///发送完成后的回调函数 ///</summary> ///<param name="param"></param> try { }
catch(Exception ex)
{
....
}
}
//自己定义的返回状态参数类型 b.同步发送: 方法:Send(...); 参数: Send ( byte[] datagram,//要发送的数据字节数组 int bytes,//要发送的数据的长度 IPEndPoint endPoint//接收端的ip和端口对象 ); 使用: public void SendData(string ip,int port,object data) 二,收包 1,首先需要给本地接收端指定一个端口号port。发送端发送数据之前需要传入的是接收端的ip和端口号。 2,接下来创建一个UdpClient对象: UdpClient udpClient=new UdpClient(port);
3,准备接收: 接收时候同样也有有同步和异步两种方式。 a.异步接收: 方法:BeginReceive(...); 参数: BeginReceive ( AsyncCallback requestCallback,//接收完后的回调函数 object state//用户自己定义接收完成成后的返回状态,在requestCallback有体现。 ); EndReceive { IAsyncResult asyncResult,//BeginReceive返回的IAsyncResult ref IPEndPoint remoteEp//获取的发送方的相关信息 } 使用: private int m_Port; private bool m_IsReceive; private UdpClient m_ReceiveUdpClient; private Thread m_ReceiveThread; public void StartReceiveData(int port) m_IsReceive=true; b.同步接收: 方法:Receive(...); 参数: Receive ( ref IPEndPoint endPoint////获取的发送方的相关信息s ); 使用: private int m_Port;
停止接收: private void StopReceive()
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论