Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
IOCtlSocket Ruby Winapi_Ruby_Sockets_Winapi_Ioctl - Fatal编程技术网

IOCtlSocket Ruby Winapi

IOCtlSocket Ruby Winapi,ruby,sockets,winapi,ioctl,Ruby,Sockets,Winapi,Ioctl,我试图通过ioctlsocket(FIONREAD)获取recv要读取的数据包的值,但是函数没有返回任何值 看: ret_val不会改变,无论我对它有什么价值 有人有提示或解决方案吗?最后一个参数是指针。指针在Win32API中实现为字符串。因此,您需要执行以下操作: IOCtlSocket = Win32API.new('ws2_32', 'ioctlsocket', 'llp', 'i') ret_val_buf = " " * 4 #Prepare a 4-byte buffer re

我试图通过ioctlsocket(FIONREAD)获取recv要读取的数据包的值,但是函数没有返回任何值

看:

ret_val不会改变,无论我对它有什么价值


有人有提示或解决方案吗?

最后一个参数是指针。指针在Win32API中实现为字符串。因此,您需要执行以下操作:

IOCtlSocket = Win32API.new('ws2_32', 'ioctlsocket', 'llp', 'i') 

ret_val_buf = " " * 4 #Prepare a 4-byte buffer
result = IOCtlSocket.call @descriptor, 0x4004667f, ret_val_buf
ret_val = ret_val_buf.unpack("L")
IOCtlSocket = Win32API.new('ws2_32', 'ioctlsocket', 'llp', 'i') 

ret_val_buf = " " * 4 #Prepare a 4-byte buffer
result = IOCtlSocket.call @descriptor, 0x4004667f, ret_val_buf
ret_val = ret_val_buf.unpack("L")