Sha256: 0df4ef6f6eaf1ced738820e8a9d14f4e97717a9d3b2c28508d99139876d339da
Contents?: true
Size: 955 Bytes
Versions: 2
Compression:
Stored size: 955 Bytes
Contents
require 'socket' require 'thread' module NFS module SUNRPC class UDPServer < Server UDPRecvMTU = 10000 def initialize(programs, port = nil, host = '127.0.0.1') @socket = UDPSocket.open @socket.bind(host, port) socketmutex = Mutex.new @programs = hash_programs(programs) @thread = Thread.new do loop do request = @socket.recvfrom(UDPRecvMTU) data = request[0] port = request[1][1] host = request[1][3] Thread.new do result = run_procedure(data) if !result.nil? socketmutex.synchronize do @socket.send(result, 0, host, port) end end end end end if block_given? begin yield(self) ensure shutdown end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
nfs-rb-1.0.2 | lib/nfs/sunrpc/udp_server.rb |
nfs-rb-1.0.1 | lib/nfs/sunrpc/udp_server.rb |