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
在Ruby中,如何通过重置中止连接?_Ruby_Sockets - Fatal编程技术网

在Ruby中,如何通过重置中止连接?

在Ruby中,如何通过重置中止连接?,ruby,sockets,Ruby,Sockets,在任何套接字API中,close()方法都会关闭与FIN的连接。如果我想中止与RST的连接,我该怎么做?使用普通的Ruby TCPSocket,您可以通过如下操作打开SO_LINGER: linger = [1,0].pack('ii') socket.setsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER, linger) socket.close 答案是好的,但我发现了一个错误,请参见:第二行应该是sock.setsockopt(Socket::S

在任何套接字API中,close()方法都会关闭与FIN的连接。如果我想中止与RST的连接,我该怎么做?

使用普通的Ruby TCPSocket,您可以通过如下操作打开SO_LINGER:

linger = [1,0].pack('ii')
socket.setsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER, linger)
socket.close

答案是好的,但我发现了一个错误,请参见:第二行应该是
sock.setsockopt(Socket::SOL_Socket,Socket::SO_LINGER,LINGER)
我编辑了答案以反映第一条注释中的更正-我已经测试了这一点,更正工作正常。还进行了编辑,以反映该问题现在询问的是Ruby,而不是RubyEventMachine。感谢您的回答,我在收到连接重置时需要进行一些行为测试,因此这非常完美:-)