Method: Packet::Core::CommonMethods#connect

Defined in:
lib/packet/packet_core.rb

#connect(ip, port, t_module, &block) ⇒ Object

method



39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/packet/packet_core.rb', line 39

def connect(ip,port,t_module,&block)
  t_socket = Socket.new(Socket::AF_INET,Socket::SOCK_STREAM,0)
  t_sock_addr = Socket.sockaddr_in(port,ip)
  t_socket.setsockopt(Socket::IPPROTO_TCP,Socket::TCP_NODELAY,1)

  connection_completion_awaited[t_socket.fileno] =
    { :sock_addr => t_sock_addr, :module => t_module,:block => block }
  begin
    t_socket.connect_nonblock(t_sock_addr)
    immediate_complete(t_socket,t_sock_addr,t_module,&block)
  rescue Errno::EINPROGRESS
    write_ios << t_socket
  end
end