如何TCPServer从Ruby中的http请求接收数据?

时间:2012-04-17 14:20:17

标签: ruby tcpsocket

通过

向客户端发送服务器响应很方便
server = TCPServer.open 1234

socket = server.accept

socket.puts 'data from server side'

在客户端,在这种情况下卷曲

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

此时,似乎我仍然可以在curl中输入一些东西,所以我假设tcp连接是双向的,我输入

data from the curl client 

之后,如何从当前TCPSocket实例中的curl客户端收到此消息?

我试过

socket.read

但它不起作用

1 个答案:

答案 0 :(得分: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