2009-09-03 43 views
0

這可能是我見過的最愚蠢的事情,我有一個與方法發送和紅寶石類'套接字'的管道錯誤錯誤,我有這個東西4天前,沒有找到任何關於它的事情,我有點瘋了。不能解決的Ruby錯誤

我幾乎絕望,我在互聯網上發現了一個壞的管道錯誤,但沒有發送方法,甚至沒有類套接字。 我的代碼是這樣的:

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) 

任何幫助的請求......

回答

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) 
+0

夥計...你剛剛度過了我的一天,thanx很多。 以及4我之前已經使用它的TCPSocket類,但是我用這種方式編寫套接字4是一個原因。 順便說一句你的代碼是絕對正確的,再次thanx。 – Raafat 2009-09-03 19:05:13

+0

當然可以!很高興我能幫助:D – Twisol 2009-09-03 19:22:37

0

也許另一端關閉連接?

+0

nop ...但thanx任何方式。 – Raafat 2009-09-03 17:22:57

相關問題