首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python在同一台机器上模拟可靠的发送方和接收方

使用python在同一台机器上模拟可靠的发送方和接收方
EN

Stack Overflow用户
提问于 2014-04-12 20:24:19
回答 1查看 272关注 0票数 0

对于python来说,我正在尝试使用python 2-7实现发送方和接收方,我或多或少地计算出了代码,但是仍然有一些东西无法解释,而且我找不到足够简单的解释:

代码语言:javascript
复制
while True:
      try:
      #...
      except:
          raise ValueError

我知道这是一个while循环,它将执行try代码,直到异常发生,然后执行下面的代码,但是ValueError是什么呢?

另一件事是,在try块中我有这样的内容:

代码语言:javascript
复制
message, address = self.receive()

其中:

代码语言:javascript
复制
def receive(self):
    return self.s.recvfrom(4096)

据我所知,这是从套接字接收数据,返回值是一对( string,address),其中字符串是表示接收到的数据的字符串,地址是套接字发送数据的地址,但是我没有得到的是,这一行应该立即执行,处理器移动到下面的一行,那么如果在执行这一行时没有准确地接收到数据包,我们如何捕获数据包?是否有某种缓冲区可以保存接收到的数据包直到这一行执行,或者这是如何工作的?

感谢您的耐心

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-12 20:31:03

第一个问题:

代码语言:javascript
复制
while True:  # an idiomatic infinite loop
    try:     # set up for try/except
        # do some stuff with sockets
    except:  # catch any exception
        raise ValueError   # catch-all error to say "there was a problem with that value"

第二个问题:

是的,有一个缓冲器。recvfrom(4096)一次从该缓冲区读取多达4096字节。注意,第一个参数在文件中的名称是bufsize。

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

https://stackoverflow.com/questions/23035711

复制
相关文章

相似问题

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