最近我得到了一个Raspberry Pi,我决定构建的第一个项目是一个简单的服务器,可以向任何和所有客户端返回“Hello World”。这是代码:
require 'socket' # Provides TCPServer and TCPSocket classes
puts 'initializing, standby'
server = TCPServer.new('localhost', 2345)
loop do
socket = server.accept
puts 'hello, this is alien'
request = socket.gets
STDERR.puts request
response = "Hello World!\n"
socket.print "HTTP/1.1 200 OK\r\n" +
"Content-Type: text/plain\r\n" +
"Content-Length: #{response.bytesize}\r\n" +
"Connection: close\r\n"
socket.print "\r\n"
socket.print response
socket.close
end
运行时,命令行输出initializing, standby
。但是当我进入浏览器并输入http://localhost:2345/anything
时,它会返回拒绝连接。将localhost
更改为其IP地址或主机名也不起作用。我已经成功连接到了raspberry pi。问题是什么,我该如何解决?
答案 0 :(得分:0)
您的代码:
server = TCPServer.new('localhost', 2345)
表示服务器仅侦听来自localhost的连接。您可以通过以下方式访问它:
curl localhost:2345
但是如果你想从pi外部访问服务器,服务器必须从以下任何地方监听连接:
server = TCPServer.new('0.0.0.0', 2345)