UdpClient.BeginReceive(AsyncCallback, Object) 方法
- 命名空间:
- System.Net.Sockets
- 程序集:
- System.Net.Sockets.dll
从远程主机异步接收数据报。
public IAsyncResult BeginReceive (AsyncCallback requestCallback, object state);
参数
- requestCallback
- AsyncCallback
一个 AsyncCallback 委托,它引用操作完成时要调用的方法。
- state
- Object
一个用户定义的对象,其中包含接收操作的相关信息。 当操作完成时,此对象会被传递给 requestCallback 委托。
返回
一个 IAsyncResult 对象,它引用异步接收。
示例
下面的代码示例使用 BeginReceive 异步接收服务器响应。
public struct UdpState
{
public UdpClient u;
public IPEndPoint e;
} public static bool messageReceived = false; public static void ReceiveCallback(IAsyncResult ar)
{
UdpClient u = ((UdpState)(ar.AsyncState)).u;
IPEndPoint e = ((UdpState)(ar.AsyncState)).e; byte[] receiveBytes = u.EndReceive(ar, ref e);
string receiveString = Encoding.ASCII.GetString(receiveBytes); Console.WriteLine($"Received: {receiveString}");
messageReceived = true;
} public static void ReceiveMessages()
{
// Receive a message and write it to the console.
IPEndPoint e = new IPEndPoint(IPAddress.Any, s_listenPort);
UdpClient u = new UdpClient(e); UdpState s = new UdpState();
s.e = e;
s.u = u; Console.WriteLine("listening for messages");
u.BeginReceive(new AsyncCallback(ReceiveCallback), s); // Do some work while we wait for a message. For this example, we'll just sleep
while (!messageReceived)
{
Thread.Sleep(100);
}
}
注解
BeginReceive必须通过调用方法完成异步操作 EndReceive 。 通常,方法由 requestCallback 委托调用。
在操作完成之前,此方法不会被阻止。 若要在操作完成之前一直阻止,请使用 Receive 方法。
有关使用异步编程模型的详细信息,请参阅 以异步方式调用同步方法。
适用于
.NET
.NET Core
.NET Framework
.NET Standard
Xamarin.Android
Xamarin.iOS
Xamarin.Mac
UdpClient.BeginReceive(AsyncCallback, Object) 方法的更多相关文章
- [Guava学习笔记]Basic Utilities: Null, 前置条件, Object方法, 排序, 异常
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3842433.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...
- JavaScript非构造函数的继承( object()方法、浅拷贝与深拷贝 )
一.什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人". var Chinese = { nation:'中国' }; 还有一个对象,叫做&qu ...
- [Google Guava] 1.3-常见Object方法
原文链接 译者: 沈义扬 equals 当一个对象中的字段可以为null时,实现Object.equals方法会很痛苦,因为不得不分别对它们进行null检查.使用Objects.equal帮助你执行n ...
- 执行ArrayList的remove(object)方法抛异常?
简介 或许有很多小伙伴都尝试过如下的代码: ArrayList<Object> list = ...; for (Object object : list) { if (条件成立) { l ...
- 11.Object方法
综述 Object是Java中所有类的父类,对它的学习十分的重要, Object的函数除了final方法,基本上都是被设计为要被覆盖的(Override),这节我们就一起来学习这些函数. 1.equa ...
- Object方法equals、hashCode
java知识背景: 1)hashCode()方法返回的是Jvm的32位地址 2)==比较的是对象在jvm中的地址 3)Object的equals()比较的就是jvm物理地址 4)比较2个对象使用equ ...
- [Guava源码分析]Objects 和 ComparisonChain:帮助重写Object方法
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3874194.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...
- 自学Python2.3-基本数据类型-元组tuple(object) 方法
Python tuple方法总结 一.元组的简介 1.元组与列表一样,也是一种序列,但是唯一不同的元组是不能修改的 2.元组的元素不可修改,但是元组元素的元素是可以修改的 3.元组通过()括起来表示 ...
- Java中的对象Object方法之---wait()和notifiy()
这一篇咋们继续,接着来介绍wait()和notify()方法,我们都知道这两个方法和之前介绍的方法不太一样,那就是这两个方法是对象Object上的,不属于Thread类上的.我们也知道这两个方法是实现 ...
- Object方法
1. getClass() 返回此 Object 的运行时类. 2. hashCode() 返回该对象的哈希码值. 3. equals() 指示其他某个对象是否与此对象“相等”. 4. toStrin ...
随机推荐
- 向AWS迁移系统
向AWS迁移系统的考虑事项: 1.理解现在应用的架构和运行环境: 使用的OS,软件版本,依赖库,底层硬件,数据库,资源使用用量.性能等非功能要件. 基于这些信息设计在AWS上的架构,使用Ins ...
- vue搜索历史记录缓存实现
思路: 1.浏览器缓存永久保存搜索历史数据. 2.页面初始化将数据保存到页面变量中. 3.对搜索历史记录的怎加和删除,要同步到缓存中. ----------------直接看代码----------- ...
- 修改Linux服务的文件打开句柄数
在bash中,有个ulimit命令,提供了对shell及该shell启动的进程的可用资源控制.主要包括打开文件描述符数量.用户的最大进程数量.coredump文件的大小等. 在centos 5/6 等 ...
- python bytecode解析
python bytecode解析 前言 我们的电脑是怎么运行的呢?计算机内部的 CPU 处理器是个硅片,上面雕刻着精心布置的电路,输入特定的电流,就能得到另一种模式的电流,而且模式可以预测,给这些模 ...
- Avalonia跨平台上位机控件开发之水泵
Avalonia跨平台上位机控件开发之水泵 随着国产化的推进,越来越多的开发者选择使用跨平台的框架来创建上位机应用,而Avalonia正是一个优秀的选择.本文将探讨如何利用Avalonia框架进行水泵 ...
- Mysql篇-Buffer Pool中的三大链表
为什么要有 Buffer Pool? 虽然说 MySQL 的数据是存储在磁盘里的,但是也不能每次都从磁盘里面读取数据,这样性能是极差的. 要想提升查询性能,那就加个缓存.所以,当数据从磁盘中取出后,缓 ...
- 题解:CF771A Bear and Friendship Condition
CF771A Bear and Friendship Condition 题解 算法 并查集,图的基本性质 分析 题目意思是,一旦有一些点联通,那么这些点必须两两直接相连.换句话讲,就是图中的每个联通 ...
- WebLogic T3反序列化漏洞
目录 前言 T3协议概述 T3反序列漏洞分析 漏洞复现 修复措施 前言 WebLogic的反序列化漏洞是一个经典的漏洞系列,原因就在于WebLogic在通信过程中使用T3协议传输数据,涉及到了序列化和 ...
- dotnet学习笔记-专题04-配置的读取和写入-01
配置的读取和写入 读取配置的类,包括手动从json中读取配置.将json配置与配置类绑定.从控制台读取配置.从环境变量读取配置 using System.Diagnostics; using Micr ...
- Graylog之安装
Graylog是一个开源的日志聚合.分析.审计.展现和预警工具.功能上和ELK类似,但又比ELK要简单,依靠着更加简洁,高效,部署使用简单的优势很快受到许多人的青睐 安装部署: 单机部署,最小化部署 ...