繁体   English   中英

Ruby TCPSocket read_all

[英]Ruby TCPSocket read_all

是否有一种方法可以像read_all一样使用,而不是使用TCPSocket.read(no_of_bytes),因此可以简单地使用TCPSocket.read_all。 我先通过YAML :: dump'对象发送对象,然后再发送它们,但是我不知道一种以字节为单位获取对象大小的方法。 预先感谢,ell。 哦,我对任何形式的网络编程都非常陌生,所以请放轻松!

使用Ruby无法为您提供帮助,但是对象序列化和网络连接的通常做法是先发送长度,以便您知道要读取的长度,或者使用预定义的分隔符来分隔消息。

我怀疑是否有这样的功能。 然而! 编写它确实是最简单的部分。 我将不得不使这种语言不可知,因为自从我编写任何红宝石代码以来已经有很长时间了,但是在伪代码中基本上是这样的

def read_all(s)
   buffer = ""

   while (tmp = s.recv(128))
      if tmp == end_of_file
         break
      end

      buffer = buffer + tmp
   end

   return buffer
 end

做完了 循环并接收,直到没有更多可用数据为止。 这是最简单的任务之一:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM