IOCtlSocket Ruby Winapi
我试图通过ioctlsocket(FIONREAD)获取recv要读取的数据包的值,但是函数没有返回任何值 看: ret_val不会改变,无论我对它有什么价值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
有人有提示或解决方案吗?最后一个参数是指针。指针在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")