加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 03:08:41 所属栏目:百科 来源:网络整理
导读:我想通过TCP在 Ruby进程之间发送消息,而不使用可能限制潜在消息内容的结束字符.这排除了天真的socket.puts / gets方法. 在标准库中的某处是否有基本的TCP消息实现? (我想避免让Drb保持简单.) 解决方法 似乎没有规范,可重用的解决方案. 所以这是档案的基本实
我想通过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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读