gpt4 book ai didi

ruby - 一个简单的 TCP 消息协议(protocol)?

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

我想通过 TCP 在 Ruby 进程之间发送消息,而不使用可能限制潜在消息内容的结束字符。这排除了天真的 socket.puts/gets 方法。标准库中某处是否有基本的 TCP 消息实现?(我想避免 Drb 以保持一切简单。)

最佳答案

似乎没有规范的、可重用的解决方案。

下面是归档的基本实现:

module Messaging
# Assumes 'msg' is single-byte encoded
# and not larger than 4,3 GB ((2**(4*8)-1) bytes)
def dispatch(msg)
write([msg.length].pack('N') + msg)
end

def receive
if (message_size = read(4)) # sizeof (N)
message_size = message_size.unpack('N')[0]
read(message_size)
end
end
end

# usage
message_hub = TCPSocket.new('localhost', 1234).extend(Messaging)

关于ruby - 一个简单的 TCP 消息协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1743348/

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