我正在创建一个连接到 TCP 客户端的 ruby 服务器。我的服务器正在使用 TCPServer,并且我正在尝试使用 TCPServer::recv(),但它不等待数据,所以只是继续一个紧密的循环,直到接收到数据。
处理间歇性数据的最有效方法是什么?由于我正在尝试模拟另一台服务器,因此我无法更改正在发送的数据。TCPServer/TCPSocket 中的哪个 read like 语句会等待数据发送?
require "socket"
dts = TCPServer.new('localhost', 20000)
s = dts.accept
print(s, " is accepted\n")
loopCount = 0;
loop do
Thread.start(s) do
loopCount = loopCount + 1
lineRcvd = s.recv(1024)
if ( !lineRcvd.empty? )
puts("#{loopCount} Received: #{lineRcvd}")
s.write(Time.now)
end
end
end
s.close
print(s, " is gone\n")
谢谢你的时间。