2012-04-17 10 views
4

それは、この時点でRubyでTCPServerがhttpリクエストからデータを受信する方法は?

curl -v localhost:1234 

* Trying 127.0.0.1... connected 
* Connected to localhost (127.0.0.1) port 1234 (#0) 
> GET/HTTP/1.1 
> User-Agent: curl/7.21.4 (universal-apple-darwin11.0) libcurl/7.21.4 OpenSSL/0.9.8r zlib/1.2.5 
> Host: localhost:1234 
> Accept: */* 
> 
data from server side 

この場合のカール、

server = TCPServer.open 1234 

socket = server.accept 

socket.puts 'data from server side' 

と、クライアント側でのことで、クライアントにサーバの応答を送信するために便利です、それは私がカールして入力何かまだすることができそうですので、私は、TCP接続が双方向であると仮定し、Iその後入力

data from the curl client 

は、どのように私は、現在のTCPSocket instanのカールクライアントからこのメッセージを受け取ることができます元気?

私は

socket.read 

を試みたが、それはこのような

答えて

4

何かがユーザーの入力を待ち、その後、ユーザーに挨拶を読んでいました動作しません。この例では、サーバー側の入力を単にエコーします。

server = TCPServer.open(8000) 
socket = server.accept 
socket.puts 'Hello!' # Prints Hello! to the client 
while line = socket.gets 
    puts line # Prints whatever the client enters on the server's output 
end 
+0

GET/HTTP/1.1 のUser-Agent:カール/ 7.21.4(ユニバーサル・りんご・darwin11.0)のlibcurl/7.21.4のOpenSSL/0.9.8rのzlib/1.2.5 ホスト:localhostを: 1234 Accept:*/* – mko

+0

上記の出力はありますが、クライアント入力メッセージはありません – mko

+0

私は 'telnet localhost 8000'を使っていました。私は 'curl'が双方向通信をサポートしているかどうか分からない(はい、あなたが何かを入力できるように見えますが、それは私が知る限りサーバに送られていません)。 –

関連する問題