Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.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
如何从recvfrom()检查消息大小? < >我如何检查消息是在Windows上的C或C++的正确大小?_C++_C_Windows_Winapi_Sockets - Fatal编程技术网

如何从recvfrom()检查消息大小? < >我如何检查消息是在Windows上的C或C++的正确大小?

如何从recvfrom()检查消息大小? < >我如何检查消息是在Windows上的C或C++的正确大小?,c++,c,windows,winapi,sockets,C++,C,Windows,Winapi,Sockets,谢谢。recvfrom返回实际收到的数据报中的字节数 你所需要的只是 if (iResult < 0) { /* network error */ } if (iResult != BufLen) { /* wrong size */ } if(iResult


谢谢。

recvfrom
返回实际收到的数据报中的字节数

你所需要的只是

if (iResult < 0) { /* network error */ }
if (iResult != BufLen) { /* wrong size */ }
if(iResult<0){/*网络错误*/}
如果(iResult!=BufLen){/*大小错误*/}

老答案,离题

您应该声明一个变量来保存大小,并将其地址作为
fromlen
参数传递

recvfrom
将填写数据报发送方地址的实际大小(IP和端口,因此您可以根据需要发送回复)


然后,您可以根据预期测试实际大小。

什么是Visual Studio 3.0?NET与此有什么关系?你是说VisualC++编译器附带了“VisualStudio.NET 2003”吗?@托米:真的很抱歉, FROMLMEN<代码>参数获得了发送者地址(IP和端口)的大小,而不是包大小。数据包内容的大小是返回值。修正了我的答案。