Visual C# UDP协议的收发实现

网络 网络管理
文章中,我们对Visual C# UDP的具体的收发的主要类和使用方法做了具体的解析。那么请大家浏览文章来看下主要内容吧。

前面我们对UDP协议的面向链接问题进行了简单的描述。这里我们主要介绍一下Visual C# UDP的主要类和使用方法。那么在C#中来完成UDP协议的数据发送、接收包使用等问题。让我们一起看看主要内容吧。

Visual C# UDP数据的发送、接收包使用的主要类及其用法:

用Visual C# UDP协议的实现,最为常用,也是最为关键的类就是UdpClient,UdpClient位于命名空间System.Net.Sockets中,Visual C# UDP数据包的发送、接收都是通过UdpClient类的。表01和表02是UdpClient类中常用方法和属性及其简要说明。

方法 说明 Close 关闭 UDP 连接 Connect 建立与远程主机的连接 DropMulticastGroup 退出多路广播组 JoinMulticastGroup 将 UdpClient 添加到多路广播组 Receive 返回已由远程主机发送的 UDP 数据文报 Send 将 UDP 数据文报发送到远程主机。

属性 说明 Active 获取或设置一个值,该值指示是否已建立了与远程主机的连接 Client 获取或设置基础网络套接字 表02:UdpClient类中常用方法及其说明。

1.Visual C# UdpClient类发送UDP数据包:

在具体使用中,一般分成二种情况:

(1). 知道远程计算机IP地址:

"Send"方法的调用语法如下:

  1. public int Send ( byte[] dgram , int bytes , IPEndPoint endPoint ) ;  

参数说明:

dgram 要发送的 UDP 数据文报(以字节数组表示)。

bytes 数据文报中的字节数。

endPoint 一个 IPEndPoint,它表示要将数据文报发送到的主机和端口。

返回值 已发送的字节数。

下面使用UdpClient发送UDP数据包的具体的调用例子:

  1. IPAddress HostIP = new IPAddress.Parse ( "远程计算机IP地址" ) ;   
  2. IPEndPoint host = new IPEndPoint ( HostIP , 8080 ) ;   
  3. UdpClient.Send ( "发送的字节" , "发送的字节长度" , host ) ;  

(2). 知道远程计算机名称:

知道远程计算机名称后,利用"Send"方法直接把UDP数据包发送到远程主机的指定端口号上了,这种调用方式也是最容易的,语法如下:

  1. public int Send ( byte[ ] dgram , int bytes , string hostname , int port ) ;  

参数说明:

dgram 要发送的 UDP 数据文报(以字节数组表示)。

bytes 数据文报中的字节数。

hostname 要连接到的远程主机的名称。

port 要与其通讯的远程端口号。

返回值 已发送的字节数。

2.Visual C# UdpClient类接收UDP数据包:

接收UDP数据包使用的是UdpClient中的“Receive"方法。此方法的调用语法如下:

  1. public byte [] Receive ( ref IPEndPoint remoteEP ) ;  

参数说明:

remoteEP 是一个 IPEndPoint类的实例,它表示网络中发送此数据包的节点。

如果指定了远程计算机要发送到本地机的端口号,也可以通过侦听本地端口号来实现对数据的获取,下面就是通过侦听本地端口号“8080"来获取信息代码:

  1. server = new UdpClient ( ) ;   
  2. receivePoint = new IPEndPoint (new IPAddress ( "127.0.0.1" ) , 8080 ) ;   
  3. byte[] recData = server.Receive ( ref receivePoint ) ;  

 

责任编辑:佟健 来源: 互联网
相关推荐

2010-06-28 10:57:07

UDP协议

2010-07-09 11:23:07

Visual C# U

2009-08-10 16:47:45

Visual C#数据

2009-08-19 16:50:32

Visual C#C#语言特性

2012-09-25 15:02:50

C#网络协议

2009-08-18 16:31:19

Visual C#编写

2009-08-20 11:03:34

Visual C#使用

2009-09-02 16:21:17

Visual BasiC#语言

2010-07-12 10:15:47

WinSock APIUDP协议

2009-08-31 14:45:07

Visual C# 3

2010-07-06 15:16:34

UDP协议

2009-08-10 10:43:18

Visual C#快捷

2009-08-07 10:53:59

Visual C#Excel

2009-08-24 09:25:18

Visual C# ..NET应用程序

2013-08-01 10:01:02

网络协议TCP协议UDP协议

2012-09-24 15:35:24

C#网络协议UDP

2014-06-13 13:47:31

UDP

2010-06-28 15:45:07

UDP协议

2020-01-03 07:57:39

UDPTCP网络协议

2010-07-08 12:42:34

UDP协议
点赞
收藏

51CTO技术栈公众号