红宝石插座 - 运行在socker上的方法

我是Ruby插座中的新手。我在服务器项目,我坐了起来插座的服务器如下:红宝石插座 - 运行在socker上的方法

require 'socket'    

server = TCPServer.open(2000)

loop {

Thread.start(server.accept) do |client|

client.puts(Time.now.ctime)

client.puts "Closing the connection. Bye!"

client.close

end

我想从客户端运行我的方法之一,在我的项目:

require 'socket'  

hostname = 'localhost'

port = 2000

s = TCPSocket.open(hostname, port)

while line = s.gets

puts line.chop

puts "hey"

# call helloWorldMethod()

end

s.close

回答:

require 'socket'    

server = TCPServer.open(2000)

loop do

Thread.start(server.accept) do |client|

client.puts(Time.now.ctime)

client.puts "Closing the connection. Bye!"

client.close

end

end

我相信您的解决方案是在​​

,我发现这个文档中关于ruby socket programming

微型网页浏览器

我们可以使用套接字库来实现任何Internet协议。这里,例如,是抓取网页

取决于你的路由你可能要调整URL的内容的代码,它chould是www.yourwebsite.com/users

require 'socket' 

host = 'www.tutorialspoint.com' # The web server

port = 80 # Default HTTP port

path = "/index.htm" # The file we want

这是HTTP请求我们发送获取文件

,您可以在HTTP postput要求

改变你的要求

request = "GET #{path} HTTP/1.0\r\n\r\n" 

socket = TCPSocket.open(host,port) # Connect to server

socket.print(request) # Send request

response = socket.read # Read complete response

# Split response at first blank line into headers and body

headers,body = response.split("\r\n\r\n", 2)

print body # And display it

要实现类似的Web客户端,您可以使用像Net :: HTTP这样的预建库来处理HTTP。以下是代码,代码相当于以前的代码 -

require 'net/http'     # The library we need 

host = 'www.tutorialspoint.com' # The web server

path = '/index.htm' # The file we want

http = Net::HTTP.new(host) # Create a connection

headers, body = http.get(path) # Request the file

if headers.code == "200" # Check the status code

print body

else

puts "#{headers.code} #{headers.message}"

end

以上是 红宝石插座 - 运行在socker上的方法 的全部内容, 来源链接: utcz.com/qa/259396.html

回到顶部