2011-05-13 74 views
1

我使用一個TCP連接併發送一些數據是這樣的:紅寶石TCP套接字從來沒有得到答覆

begin 
    session = "mysession" 
    socket = TCPSocket.new(tcpaddress, port) 
    socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1) 
    puts "sending to socket HELO " + session 
    socket.write ('HELO ' + session) 
    puts socket.read 
    socket.close 
rescue Exception => myException 
    puts "Exception rescued : #{myException}" 
end 

插座從來沒有得到一個答覆,但遠程登錄的功能:

$ telnet some_ip port 
Trying some_ip... 
Connected to some_ip 
Escape character is '^]'. 
HELO mysession 
OK 

正如你所看到的遠程服務器按預期回覆「確定」。怎麼了?

感謝先進!

PS:我已經使用看跌期權和發送方法也

+0

我幾乎同樣的問題。 http://stackoverflow.com/questions/1147852/ruby-tcpsocket-write-doesnt-work-but-puts-does – nathan 2011-05-13 20:20:56

回答

2

也許你需要CRLF添加到命令:

socket.write("HELO " + session + "\r\n") 
+0

是的,修復它,謝謝:D – RGB 2011-05-14 07:39:49