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