服务器进程是否有任何理由不在以下代码中提供任何输出?
require 'socket'
server = TCPServer.open(3000)
loop{
puts "waiting for connection"
client = server.accept
puts "connection!"
client.close
puts "client closed"
}
我通过以下方式连接:
nc localhost 3000
在windows cygwin环境中。
服务器终端中没有输出。我可以在某处冲洗一些东西吗?
答案 0 :(得分:0)
您希望服务器通过“连接!”响应客户端,这是正确的吗?如果是这样,那么您的问题是#puts
在STDOUT
上调用时会将其输出重定向到Kernel
。如果我们在客户端的#puts
上调用TCPSocket
,它会将输出写入TCPSocket
IO:
require 'socket'
server = TCPServer.open(3000)
loop{
puts "waiting for connection"
client = server.accept
client.puts "connection!"
client.close
puts "client closed"
}
然后客户端看起来像这样:
$ nc localhost 3000
connection!