私はRubyを初めて使用し、「The Ruby Programming Language」という本に従って、Rubyでソケットを学習しようとしています。以下は、私の単純なサーバー/クライアントです。
## server
require 'socket'
server= UDPSocket.new
server.bind('localhost', 3000)
loop do
data,address=server.recvfrom(1024)
server.send(data.reverse,0,address[3],address[1]) ############ My problem #########
puts "get #{data} from #{address[3]}"
end
##client
require 'socket'
ds = UDPSocket.new
#ds.connect('localhost', 3000)
while line=gets
ds.send(line.chomp, 0,'localhost', 3000)
response,address = ds.recvfrom(1024)
puts response
end
行に注意してください
server.send(data.reverse,0,address[3],address[1])
この行にコメントすると、サーバーは保持し、クライアントに応答しなくなるようです。
なんでだろう?
続行するには、UDPSocketがクライアントに対して何らかの応答を行う必要があるということですか?