ruby – 一个简单的TCP消息传递协议?

我想通过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)

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...