gpt4 book ai didi

ruby - 许多客户端连接 Ruby

转载 作者:数据小太阳 更新时间:2023-10-29 07:32:26 24 4
gpt4 key购买 nike

基本上,我们有大量(100 多个)远程嵌入式设备需要从中传输数据。

我可以使用以下代码连接到任何单个远程主机:

require 'socket'

socket = TCPSocket.new '192.168.1.115', 8016

loop do
socket.write("GET_DATA")
data = socket.read(32)
end

s.close

但我想同时连接到其中许多。有推荐的方法吗?

最佳答案

使用线程:

ips = ['192.168.1.115', '...', '...']
threads = []

ips.each do |ip|
threads << Thread.new do
# Connect here, do some stuff with the socket
end
end

threads.each { |t| t.join }

请注意,如果您想要真正的线程,您应该使用 Jruby 或 Ruby >= 1.9,MRI ruby​​ < 1.9(标准 ruby​​)线程实现模拟线程(green threads),并且仅在一个线程等待时才执行真正的线程用于输入/输出。

关于ruby - 许多客户端连接 Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15366346/

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