我是 ruby 新手,并遵循“The Ruby Programming Language”一书,我正在尝试学习 ruby 中的一些 Socket,以下是我的简单服务器/客户端:
## 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必须对客户端进行一些响应才能继续?