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.



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

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

Instance Method Details

#closeObject



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

def close
  @socket.close
end

#recv(bytesize = MAXPDUSIZE) ⇒ Object



99
100
101
102
103
104
# File 'lib/netsnmp/session.rb', line 99

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

#send(payload) ⇒ Object



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

def send(payload)
  write(payload)
  recv
end

#write(payload) ⇒ Object



93
94
95
96
97
# File 'lib/netsnmp/session.rb', line 93

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