这可能是我见过的最愚蠢的事情,我的方法发送和ruby类'Socket'管道出现故障,4天前我有这个东西,但没有找到任何关于它的东西,我有点疯狂。
我几乎绝望了,我发现互联网上的管道错误,但是没有使用send方法,甚至是类套接字。 我的代码是这样的:
require 'socket'
sock = Socket.open(Socket::PF_INET,Socket::SOCK_STREAM,Socket::IPPROTO_TCP)
@data = "anyThing"
@addr = pack_sockaddr_in(port, host)
sock.send(@data, 0, @addr)
任何帮助请求......
答案 0 :(得分:3)
如果我错了,请纠正我,但在发送数据之前,您可能需要实际连接到主机?我看到你创建了一个TCP套接字,但没有形成实际的连接......这段代码有用吗?
require 'socket'
sock = Socket.open(Socket::PF_INET,Socket::SOCK_STREAM,Socket::IPPROTO_TCP)
@data = "anyThing"
@addr = pack_sockaddr_in(port, host)
sock.connect(@addr) #make the connection
sock.send(@data, 0)
来源:http://www.rubycentral.com/pickaxe/lib_network.html
您可能还想尝试使用TCPSocket类。我没有使用任何这个Ruby代码,所以我不习惯这个特定的库;如果我弄错了,请告诉我。 ;)
require 'socket'
sock = TCPSocket.new(host, port)
@data = "anyThing"
sock.send(@data, 0)
答案 1 :(得分:0)
或许另一端正在关闭连接?