c# - .NET 中的 UDP 套接字客户端

标签 c# sockets udp client

我在客户端应用程序中使用 UDP Sokckts。 以下是一些代码片段:

SendIP = new IPEndPoint(IPAddress.Parse(IP), port);
ReceiveIP = (EndPoint)(new IPEndPoint(IPAddress.Any, 0));
socket = new Socket(
    AddressFamily.InterNetwork,
    SocketType.Dgram,
    ProtocolType.Udp);
socket.Bind(ReceiveIP);

并接收 (while(true)):

byte[] data = new byte[BUFFERSIZE];
int receivedDataLength = socket.ReceiveFrom(data, ref ReceiveIP);
string s= Encoding.ASCII.GetString(data, 0, receivedDataLength);

我正在做一个无限的 while on receive,同时还有其他事情要做,即使什么都没有收到。我想检查是否有实际可用的数据然后 receive else 不要等待。请注意,当前的接收方法会一直等到服务器发送消息。

最佳答案

您可以使用socket.Available() 来确定在调用ReceiveFrom() 之前是否有任何等待数据。不过,理想情况下,您应该考虑使用 BeginReceiveFrom() 及其异步 friend 将输入处理分包给其他线程。

关于c# - .NET 中的 UDP 套接字客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2556867/

相关文章:

linux - 使用 ffmpeg 从运行 linux 的 Pocketbeagle 通过 UDP 直播网络摄像头视频,缺少什么?

c# - 什么动词可以描述 C# 类与其属性之间的关系?

c# - 使用 LINQ 检查是否订购了 IEnumerable<int> 的最紧凑的方法是什么?

Python - 如何通过套接字发送 rsa.key.PublicKey 对象?

java - 是否可以在同一台机器上运行套接字服务器和套接字客户端?

java - Java 在网络方面有什么更好的地方? UDP 还是 TCP?

c# - 将字典传递给 Controller

c# - 没有主方法,我无法使用命令行生成dll文件

.net - 如何将基于套接字的客户端与 WCF (net.tcp) 服务一起使用?

java - 在运行时用 TCP 套接字替换打洞/STUN UDP 套接字