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"方法的调用语法如下:
- public int Send ( byte[] dgram , int bytes , IPEndPoint endPoint ) ;
参数说明:
dgram 要发送的 UDP 数据文报(以字节数组表示)。
bytes 数据文报中的字节数。
endPoint 一个 IPEndPoint,它表示要将数据文报发送到的主机和端口。
返回值 已发送的字节数。
下面使用UdpClient发送UDP数据包的具体的调用例子:
- IPAddress HostIP = new IPAddress.Parse ( "远程计算机IP地址" ) ;
- IPEndPoint host = new IPEndPoint ( HostIP , 8080 ) ;
- UdpClient.Send ( "发送的字节" , "发送的字节长度" , host ) ;
(2). 知道远程计算机名称:
知道远程计算机名称后,利用"Send"方法直接把UDP数据包发送到远程主机的指定端口号上了,这种调用方式也是最容易的,语法如下:
- public int Send ( byte[ ] dgram , int bytes , string hostname , int port ) ;
参数说明:
dgram 要发送的 UDP 数据文报(以字节数组表示)。
bytes 数据文报中的字节数。
hostname 要连接到的远程主机的名称。
port 要与其通讯的远程端口号。
返回值 已发送的字节数。
2.Visual C# UdpClient类接收UDP数据包:
接收UDP数据包使用的是UdpClient中的“Receive"方法。此方法的调用语法如下:
- public byte [] Receive ( ref IPEndPoint remoteEP ) ;
参数说明:
remoteEP 是一个 IPEndPoint类的实例,它表示网络中发送此数据包的节点。
如果指定了远程计算机要发送到本地机的端口号,也可以通过侦听本地端口号来实现对数据的获取,下面就是通过侦听本地端口号“8080"来获取信息代码:
- server = new UdpClient ( ) ;
- receivePoint = new IPEndPoint (new IPAddress ( "127.0.0.1" ) , 8080 ) ;
- byte[] recData = server.Receive ( ref receivePoint ) ;
C#中UDP数据的发送、接收的更多相关文章
- Java中udp/tcp的发送和接收
InetAddress UDP例程: 发送数据: 接收数据: 结果: TCP例程: 发送数据: 接收数据: 结果:
- 【python】udp 数据的发送和接收
import socket def send_message(): # 创建一个udp套接字 udp_socker = socket.socket(socket.AF_INET,socket.SOCK ...
- c# 实现简单udp数据的发送和接收
服务端代码 static void Main(string[] args) { UdpClient client = null; string receiveString = null; byte[] ...
- 项目总结22:Java UDP Socket数据的发送和接收
项目总结22:Java UDP Socket数据的发送和接收 1-先上demo 客户端(发送数据) package com.hs.pretest.udp; import java.io.IOExcep ...
- udp网络程序-发送、接收数据
1. udp网络程序-发送数据 创建一个基于udp的网络程序流程很简单,具体步骤如下: 创建客户端套接字 发送/接收数据 关闭套接字 代码如下: #coding=utf-8from socket im ...
- Udp广播的发送和接收(iOS + AsyncUdpSocket)下篇
接上篇C#的Udp广播的发送和接收 http://www.cnblogs.com/JimmyBright/p/4637090.html ios中使用AsyncUdpSocket处理Udp的消息非常方便 ...
- socket对于大数据的发送和接收
大数据是指大于32K或者64K的数据. 大数据的发送和接收通过TSTREAM对象来进行是非常方便的. 我们把大数据分割成一个个4K大小的小包,然后再依次传输. 一.大数据的发送的类语言描述: 1)创建 ...
- 探索 OpenStack 之(15):oslo.messaging 和 Cinder 中 MessageQueue 消息的发送和接收
前言:上一篇文章 只是 RabbitMQ 的科普,本文将仔细分析 Cinder 中 RabbitMQ 的各组件的使用.消息的发送和接收等.由于各流程步骤很多,本文只会使用若干流程图来加以阐述,尽量做到 ...
- Android Wear开发 - 数据通讯 - 第二节 : 数据的发送与接收
本节由介绍3种数据的发送接收:1.Data Items : 比特类型数据,限制100KB以内2.Assets : 资源类型数据,大小无上限3.Message : 发送消息,触发指令 http://de ...
随机推荐
- 第21章 登录 - Identity Server 4 中文文档(v1.0.0)
为了使IdentityServer能够代表用户发出令牌,该用户必须登录IdentityServer. 21.1 Cookie身份验证 使用由ASP.NET Core中的cookie身份验证处理程序管理 ...
- [日常] nginx记录post数据
1.使用log_format指令来更改日志格式,该指令只能放在http{}段 log_format 日志名 '日志内容'; server { access_log /var/log/nginx/d ...
- 一篇文章搞定SpringMVC参数绑定
SpringMVC参数绑定,简单来说就是将客户端请求的key/value数据绑定到controller方法的形参上,然后就可以在controller中使用该参数了 下面通过5个常用的注解演示下如何进行 ...
- IBGP默认的TTL值为255
结论: 1.IBGP默认的TTL值为255 组网图: 抓包内容: 1.在AR1和AR2之间抓包,只显示BGP包,显示内容如下:
- python将两个数组合并成一个数组的两种方法的代码
内容过程中,把写内容过程中常用的内容收藏起来,下面的资料是关于python将两个数组合并成一个数组的两种方法的内容,希望能对小伙伴们有帮助. c1 = ["Red","G ...
- H-ui框架信息图标点击跳出页面问题
在html中为消息a标签添加id: 在static/h-ui/js/H-ui.min.js添加事件:
- Several ports (8005, 8080, 8009) required by Tomcat v9.0 Server at localhost
Several ports (8005, 8080, 8009) required by Tomcat v9.0 Server at localhost 问题:Tomcat服务器的端口被占用 解决: ...
- DVWA 黑客攻防演练(八)SQL 注入 SQL Injection
web 程序中离不开数据库,但到今天 SQL注入是一种常见的攻击手段.如今现在一些 orm 框架(Hibernate)或者一些 mapper 框架( iBatis)会对 SQL 有一个更友好的封装,使 ...
- asp.net core 2.1 部署IIS(win10/win7)
asp.net core 2.1 部署IIS(win10/win7) 概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器 ...
- Cygwin 编译 ffmpeg
1.在官网下载linux下的压缩包 https://ffmpeg.zeranoe.com/builds/source/ffmpeg/ffmpeg-3.2.4.tar.xz 2.进入cygwin,假定将 ...