【发布时间】:2014-03-11 02:02:36
【问题描述】:
我一直在网上阅读有关 Ruby 的 TCPSocket 和 TCPServer 的示例,但我仍然不知道也找不到 什么是最佳实践。如果您有一个正在运行的 TCPServer,并且您希望跨多个连接/客户端保持套接字打开,那么谁应该负责保持它们打开,服务器或客户端?
假设你有一个 TCPServer 正在运行:
server = TCPServer.new(8000)
loop do
client = server.accept
while line = client.gets
# process data from client
end
client.puts "Response from server"
client.close # should server close the socket?
end
和客户:
socket = TCPSocket.new 'localhost', 8000
while line = socket.gets
# process data from server
end
socket.close # should client close the socket here?
我看到的所有示例的末尾都有socket.close,我认为这不是我想要的,因为这会关闭连接。服务器和客户端应保持开放连接,因为它们需要来回发送数据。
PS:我对网络非常陌生,所以如果我的问题听起来完全愚蠢,请告诉我。
【问题讨论】:
标签: ruby sockets network-programming tcpsocket