📜  销毁现有端口 - Ruby (1)

📅  最后修改于: 2023-12-03 15:42:08.104000             🧑  作者: Mango

销毁现有端口 - Ruby

在开发过程中,我们有时候需要销毁已经存在的端口并重新创建一个新端口。这个过程在 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 中销毁已存在端口的方法,对于开发人员非常实用。