建立在 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)
最近我得到了一个 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)