如何在 Ruby 中生成本地服务器
How can generate a Local Server in Ruby
我想通过 Ruby 在我的 LAN 上生成 (我不喜欢创建单词) 本地服务器(如 localhost/8000),我研究了互联网但我做不到。
我的目标是在本地服务器中显示 html 个页面,使用 Ruby。
我怎样才能做到?
require 'socket'
我在标准库中使用 socket 但是当我刷新页面时出现错误。
require 'socket'
server = TCPServer.new('localhost', 2345)
loop do
socket = server.accept
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
其他人认为你只是想启动一个网络服务器,也许你的问题是如何在ruby。
这是 ruby 网络服务器上的 good introduction,它包含一个示例,展示了如何构建示例 http 服务器,为您引用此处:
require 'socket'
server = TCPServer.new 80
loop do
# step 1) accept incoming connection
socket = server.accept
# step 2) print the request headers (separated by a blank line e.g. \r\n)
puts line = socket.readline until line == "\r\n"
# step 3) send response
html = "<html>\r\n"+
"<h1>Hello, World!</h1>\r\n"+
"</html>"
socket.write "HTTP/1.1 200 OK\r\n" +
"Content-Type: text/html; charset=utf-8\r\n" +
"Content-Length: #{html.bytesize}\r\n"
socket.write "\r\n" # write a blank line to separate headers from the html doc
socket.write html # write out the html doc
# step 4) close the socket, terminating the connection
socket.close
end
通过运行rubythis_file.rb启动,用get方法测试
您所要做的就是调出您的控制台并输入 rails server
如果要指定端口可以 rails server -p xxxx
你可以用rack做这个,http://rack.github.io/,rails也是基于rack的
你可以
ruby -run -e httpd -- . -p 8000
这将在端口 8000 为当前目录(服务器启动的位置)启动服务器。因此,您可以将所有 HTML 页面放在一个文件夹中,然后从那里启动服务器。
我想通过 Ruby 在我的 LAN 上生成 (我不喜欢创建单词) 本地服务器(如 localhost/8000),我研究了互联网但我做不到。 我的目标是在本地服务器中显示 html 个页面,使用 Ruby。 我怎样才能做到?
require 'socket'
我在标准库中使用 socket 但是当我刷新页面时出现错误。
require 'socket'
server = TCPServer.new('localhost', 2345)
loop do
socket = server.accept
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
其他人认为你只是想启动一个网络服务器,也许你的问题是如何在ruby。 这是 ruby 网络服务器上的 good introduction,它包含一个示例,展示了如何构建示例 http 服务器,为您引用此处:
require 'socket'
server = TCPServer.new 80
loop do
# step 1) accept incoming connection
socket = server.accept
# step 2) print the request headers (separated by a blank line e.g. \r\n)
puts line = socket.readline until line == "\r\n"
# step 3) send response
html = "<html>\r\n"+
"<h1>Hello, World!</h1>\r\n"+
"</html>"
socket.write "HTTP/1.1 200 OK\r\n" +
"Content-Type: text/html; charset=utf-8\r\n" +
"Content-Length: #{html.bytesize}\r\n"
socket.write "\r\n" # write a blank line to separate headers from the html doc
socket.write html # write out the html doc
# step 4) close the socket, terminating the connection
socket.close
end
通过运行rubythis_file.rb启动,用get方法测试
您所要做的就是调出您的控制台并输入 rails server
如果要指定端口可以 rails server -p xxxx
你可以用rack做这个,http://rack.github.io/,rails也是基于rack的
你可以
ruby -run -e httpd -- . -p 8000
这将在端口 8000 为当前目录(服务器启动的位置)启动服务器。因此,您可以将所有 HTML 页面放在一个文件夹中,然后从那里启动服务器。