📅  最后修改于: 2023-12-03 15:42:08.104000             🧑  作者: Mango
在开发过程中,我们有时候需要销毁已经存在的端口并重新创建一个新端口。这个过程在 Ruby 中十分简单,我们可以通过下面的代码来实现这个功能。
require 'socket'
def close_port(port)
socket = Socket.new(:INET, :STREAM)
sockaddr = Socket.pack_sockaddr_in(port, 'localhost')
begin
socket.connect_nonblock(sockaddr)
rescue Errno::EINPROGRESS
end
_, sockets, _ = IO.select(nil, [socket], nil, 1)
if sockets
begin
sockets[0].connect(sockaddr)
rescue Errno::EISCONN
end
end
socket.close
end
close_port(3000)
上面的代码会首先尝试连接传入的端口,如果端口已经被占用,则会关闭这个端口。接着可以创建一个新的端口,并继续开发工作。
以上就是 Ruby 中销毁已存在端口的方法,对于开发人员非常实用。