gpt4 book ai didi

ruby - 在YAML转储后立即加载ruby YAML

转载 作者:行者123 更新时间:2023-12-03 12:06:01 26 4
gpt4 key购买 nike

我不知道为什么我无法在YAML转储后立即加载YAML

我尝试了以下代码,但控制台上没有“结束”打印

有人可以告诉我我怎么了吗?

感谢您

服务器端 ruby 代码

require 'socket'
require 'yaml'
h = []
s = TCPServer.open('localhost',2200)
c = s.accept
loop do
YAML.dump(h,c)
YAML.load(c)
puts "end"
end

客户端 ruby 代码
require 'socket'
require 'yaml'
d = []
s = TCPSocket.open('localhost',2200)
loop do
d = YAML.load(s)
YAML.dump("client",s)
puts "end"
end

最佳答案

YAML事先不知道要读取多少字节,因此它会尝试尽可能多地读取并永远等待。没有end_of_recordTCP/IP

require 'socket'
require 'yaml'
h = []
s = TCPServer.open('localhost',2200)
c = s.accept
loop do
s = YAML.dump(h)
c.write([s.length].pack("I"))
c.write(s)
length = c.read(4).unpack("I")[0]
p YAML.load(c.read(length))
end



require 'socket'
require 'yaml'
d = []
c = TCPSocket.open('localhost',2200)
loop do
length = c.read(4).unpack("I")[0]
p YAML.load(c.read(length))
s = YAML.dump("client")
c.write([s.length].pack("I"))
c.write(s)
end

关于ruby - 在YAML转储后立即加载ruby YAML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11291070/

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