gpt4 book ai didi

ruby-on-rails - Ruby Socket-通过Socker运行方法

转载 作者:行者123 更新时间:2023-12-03 12:08:50 27 4
gpt4 key购买 nike

我是Ruby套接字的新手。我在服务器中有项目,并且在服务器中坐下了套接字,如下所示:

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

我相信您的解决方案是 TCPServer class

我找到了有关 ruby socket programming的文档

A Tiny Web Browser

We can use the socket library to implement any Internet protocol. Here, for example, is a code to fetch the content of a web page



根据您的路由,您可能需要调整网址,应该为 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

This is the HTTP request we send to fetch a file



您可以在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

To implement the similar web client, you can use a pre-built library like Net::HTTP for working with HTTP. Here is the code that does the equivalent of the previous code −


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

关于ruby-on-rails - Ruby Socket-通过Socker运行方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47615000/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com