如何使用Ruby中的TCPSocket多次发送和接收数据

时间:2015-08-23 16:37:37

标签: ruby sockets tcpsocket

如何使用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
}

我搜索但没有找到答案。

1 个答案:

答案 0 :(得分:0)

简短的回答是你不能轻易地使用TCPSocket这样做(它可能会完成,但不值得你的麻烦)。
如果是HTTP,服务器将在发送响应后关闭连接。

您要做的是使用能够执行HTTP并且还了解如何在连接上执行保持活动(即持久性)的内容,以便您可以重用连接。对于某些背景:https://en.wikipedia.org/wiki/HTTP_persistent_connection

看看: http://www.slideshare.net/HiroshiNakamura/rubyhttp-clients-comparison 幻灯片30.可能已经过时但会给你一个很好的起点。