3

私は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がクライアントに対して何らかの応答を行う必要があるということですか?

4

1 に答える 1