2009-09-03 18 views
0

これは私が今まで見た中で最も馬鹿なことかもしれません。私はsendメソッドとrubyクラス 'Socket'でパイプエラーが発生しました。それについてのこと、そして私は狂気になるのです。解決できないRubyエラー

私はほとんど絶望的です。私はインターネットで壊れたパイプエラーを発見しましたが、sendメソッドではなく、クラスソケットでもエラーが見つかりました。

答えて

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

おい...あなたは、たった今私の一日を過ごした。 よく4 TCPSocketクラス私はすでに前にそれを使用しましたが、私はこの方法でソケットを書いています4理由。 とあなたのコードは絶対に正しいです、もう一度やっぱり。 – Raafat

+0

確かに!私が助けることができてうれしい:D – Twisol

0

おそらくもう一方の端が接続を閉じている...

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

nop ... but thanx any way。 – Raafat

関連する問題