Class: NETSNMP::Session::Transport

Inherits:
Object
  • Object
show all
Defined in:
lib/netsnmp/session.rb

Constant Summary collapse

MAXPDUSIZE =
0xffff + 1

Instance Method Summary collapse

Constructor Details

#initialize(host, port, timeout:) ⇒ Transport

Returns a new instance of Transport.



67
68
69
70
71
# File 'lib/netsnmp/session.rb', line 67

def initialize(host, port, timeout:)
  @socket = UDPSocket.new
  @socket.connect(host, port)
  @timeout = timeout
end

Instance Method Details

#closeObject



73
74
75
# File 'lib/netsnmp/session.rb', line 73

def close
  @socket.close
end

#recv(bytesize = MAXPDUSIZE) ⇒ Object



88
89
90
91
92
93
# File 'lib/netsnmp/session.rb', line 88

def recv(bytesize = MAXPDUSIZE)
  perform_io do
    datagram, = @socket.recvfrom_nonblock(bytesize)
    datagram
  end
end

#send(payload) ⇒ Object



77
78
79
80
# File 'lib/netsnmp/session.rb', line 77

def send(payload)
  write(payload)
  recv
end

#write(payload) ⇒ Object



82
83
84
85
86
# File 'lib/netsnmp/session.rb', line 82

def write(payload)
  perform_io do
    @socket.send(payload, 0)
  end
end