如何使用TCPSocket多次发送和接收数据?
require 'socket'
TCPSocket.open("example.com", 80) {|s|
s.send "GET / HTTP/1.0\r\n\r\n", 0
puts s.read
s.send "GET / HTTP/1.0\r\n\r\n", 0
# Here is no data. PS: Without reconnect.
puts s.read
}
我搜索但没有找到答案。
答案 0 :(得分:0)
简短的回答是你不能轻易地使用TCPSocket这样做(它可能会完成,但不值得你的麻烦)。
如果是HTTP,服务器将在发送响应后关闭连接。
您要做的是使用能够执行HTTP并且还了解如何在连接上执行保持活动(即持久性)的内容,以便您可以重用连接。对于某些背景:https://en.wikipedia.org/wiki/HTTP_persistent_connection
看看: http://www.slideshare.net/HiroshiNakamura/rubyhttp-clients-comparison 幻灯片30.可能已经过时但会给你一个很好的起点。