首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby TCPSocket read_all

Ruby TCPSocket read_all
EN

Stack Overflow用户
提问于 2010-05-11 02:57:34
回答 2查看 1.2K关注 0票数 0

有没有一种方法可以像read_all一样工作,比如在不使用TCPSocket.read(no_of_bytes)的情况下,可以简单地使用TCPSocket.read_all。我首先通过YAML::dump发送对象,然后再发送它们,但是我不知道如何获取它们的字节大小。先谢谢你,艾尔。哦,我对任何形式的网络编程都是非常、非常陌生的,所以别对我太客气了!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-11 03:04:28

我怀疑有这样的功能。然而!写它真的是最容易的部分。我将不得不使这种语言不可知论,因为我已经很久没有写过任何ruby代码了,但在伪代码中,它基本上是这样的

代码语言:javascript
复制
def read_all(s)
   buffer = ""

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

      buffer = buffer + tmp
   end

   return buffer
 end

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

票数 1
EN

Stack Overflow用户

发布于 2010-05-11 03:03:57

我不能帮助您使用Ruby,但是对象序列化和联网的通常做法是先发送长度,这样您就知道要读取多少,或者使用预定义的分隔符来分隔消息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2805584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档