zoukankan      html  css  js  c++  java
  • 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 ) ;  
  • 相关阅读:
    Spark权威指南(中文版)----第5章 结构化API基本操作
    Spark权威指南(中文版)----第2章 Spark简介
    Spark权威指南(中文版)----第4章 结构化API概述
    Spark权威指南(中文版)----第1章Apache Spark是什么
    Java读写锁的实现原理
    【进阶之路】动态代理与字节码生成
    如何写好技术文档——来自Google十多年的文档经验
    谈谈 C++ STL 中的迭代器
    面试官疯狂问我联表查询怎么办? 愣着干嘛?进来白嫖啊!
    面试问题记录 三 (JavaWeb、JavaEE)
  • 原文地址:https://www.cnblogs.com/ZGQ-VIP/p/9628387.html
Copyright © 2011-2022 走看看