Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# UDP套接字异步接收_C#_Sockets_Asynchronous_Udp - Fatal编程技术网

C# UDP套接字异步接收

C# UDP套接字异步接收,c#,sockets,asynchronous,udp,C#,Sockets,Asynchronous,Udp,我故意发出socket.BeginReceiveFrom调用并传递16字节的缓冲区, 尽管如此,我知道对方发送了大约2000字节的消息。我故意这么做,因为我只想先读取16字节的报头,然后发出第二个接收调用,该调用将读取可变长度的有效负载。正如您可能猜到的,报头包含4个字节,指示有效负载长度 这就是说,我得到一个异常,说缓冲区不够大,无法接收消息。。。为什么呢?这是不可能的,udp是数据报而不是流媒体。你不能读取部分消息。我只记得我在C++中通过在套接字选项中设置一个标志做了一次……我在这里出错了

我故意发出socket.BeginReceiveFrom调用并传递16字节的缓冲区, 尽管如此,我知道对方发送了大约2000字节的消息。我故意这么做,因为我只想先读取16字节的报头,然后发出第二个接收调用,该调用将读取可变长度的有效负载。正如您可能猜到的,报头包含4个字节,指示有效负载长度


这就是说,我得到一个异常,说缓冲区不够大,无法接收消息。。。为什么呢?

这是不可能的,udp是数据报而不是流媒体。你不能读取部分消息。

我只记得我在C++中通过在套接字选项中设置一个标志做了一次……我在这里出错了吗?不幸的是我没有经验。很抱歉