2012-11-22 188 views
1

我想通過套接字從客戶端發送字符串到服務器。我試圖做這三種方式(寫,puts和打印)通過套接字從客戶端發送字符串到服務器

hostname = 'localhost' 
port = 3000 
s = TCPSocket.new(hostname, port) 

s.write("hello") 
s.puts("hello") 
s.print("hello") 

s.close 

,但它給我一個錯誤(錯誤不會出現在瀏覽器,但在終端上): ERROR bad Request-Line 'hello'

是否可以將字符串從客戶端發送到服務器,還是僅從服務器到客戶端?

我使用Ruby 1.8.7和Rails 3.0.1

+0

你有一臺tcp服務器應用程序在同一臺機器上的端口3000上偵聽嗎?否則,您將無法通過握手建立tcp連接來發送消息。 – fayyazkl

+0

@CodePainters說了我忘了的東西:我想和WEBrick交談,是的,在3000端口。我們終於用另一種方式做了,不過謝謝 – itziki

+0

如果CodePainters的答案幫助了@itziki,你應該upvote /接受它。 – fayyazkl

回答

3

它看起來像服務器不喜歡你Hello線。你提到Ruby和Rails,我想你想和WEBrick HTTP服務器通信 - 爲什麼你不說HTTP呢?

如果你想實現的HTTP客戶端,看看http://www.tutorialspoint.com/ruby/ruby_socket_programming.htm

A Tiny Web Browser部分,你會發現使用TCPSocket工作HTTP客戶端,以及Net::HTTP例子。

如果HTTP是你所需要的,Net::HTTP是要走的路,實現HTTP聽起來像重新發明輪子。

+0

感謝您的回答,您節省了我的月薪。 –

相關問題