Ruby TCP服务器基础
有人能给我解释一下这段代码的每一部分都在做什么吗? 如果有人能给我一个循序渐进的解释,那将很有帮助。 还有,我如何上传文件? 一般来说,我如何操作ruby服务器Ruby TCP服务器基础,ruby,sockets,tcpserver,Ruby,Sockets,Tcpserver,有人能给我解释一下这段代码的每一部分都在做什么吗? 如果有人能给我一个循序渐进的解释,那将很有帮助。 还有,我如何上传文件? 一般来说,我如何操作ruby服务器 #!/usr/bin/env ruby require 'socket' require 'cgi' server = TCPServer.new('127.0.0.1', 8888) puts 'Listening on 127.0.0.1:8888' loop { client = server.accept fir
#!/usr/bin/env ruby
require 'socket'
require 'cgi'
server = TCPServer.new('127.0.0.1', 8888)
puts 'Listening on 127.0.0.1:8888'
loop {
client = server.accept
first_request_header = client.gets
resp = first_request_header
headers = ['http/1.1 200 ok',
"date: #{CGI.rfc1123_date(Time.now)}",
'server: ruby',
'content-type: text/html; charset=iso-8859-1',
"content-length: #{resp.length}\r\n\r\n"].join("\r\n")
client.puts headers # send the time to the client
client.puts resp
client.close
}
客户机正在做什么?什么是请求头,为什么需要设置它们?在请求中插入头意味着什么?下面是
.get
的作用:还有为什么服务器的输出在30个字符后似乎被切断了
#required gems
require 'socket'
require 'cgi'
#creating new connection to a local host on port 8888
server = TCPServer.new('127.0.0.1', 8888)
puts 'Listening on 127.0.0.1:8888'
loop {
#looks like a client method call to open the connection
client = server.accept
first_request_header = client.gets
resp = first_request_header
#setting the request headers
headers = ['http/1.1 200 ok',
"date: #{CGI.rfc1123_date(Time.now)}",
'server: ruby',
'content-type: text/html; charset=iso-8859-1',
"content-length: #{resp.length}\r\n\r\n"].join("\r\n")
#inserts custom client headers into request
client.puts headers
client.puts resp
#closes client connection to local host
client.close
}