建立在 Raspbian 之上的简单服务器拒绝连接 - 修复了吗?

Simple server built on top of Raspbian refuses connections- fix?

最近我得到了一个 Raspberry Pi,我决定构建的第一个项目是一个简单的服务器,可以 returns '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 时,它 returns 连接被拒绝。将 localhost 更改为其 IP 地址或主机名也不起作用。我 已经 成功通过 SSH 连接到 raspberry pi。有什么问题,我该如何解决?

您的代码:

server = TCPServer.new('localhost', 2345)

表示服务器只监听来自本地主机的连接。您可以从 pi 访问它:

curl localhost:2345

但是如果你想从 pi 外部访问服务器,服务器必须监听来自任何地方的连接,如下所示:

server = TCPServer.new('0.0.0.0', 2345)