我想通过TCP在
Ruby进程之间发送消息,而不使用可能限制潜在消息内容的结束字符.这排除了天真的socket.puts / gets方法.
在标准库中的某处是否有基本的TCP消息实现?
(我想避免让Drb保持简单.)
在标准库中的某处是否有基本的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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。