对于python来说,我正在尝试使用python 2-7实现发送方和接收方,我或多或少地计算出了代码,但是仍然有一些东西无法解释,而且我找不到足够简单的解释:
while True:
try:
#...
except:
raise ValueError我知道这是一个while循环,它将执行try代码,直到异常发生,然后执行下面的代码,但是ValueError是什么呢?
另一件事是,在try块中我有这样的内容:
message, address = self.receive()其中:
def receive(self):
return self.s.recvfrom(4096)据我所知,这是从套接字接收数据,返回值是一对( string,address),其中字符串是表示接收到的数据的字符串,地址是套接字发送数据的地址,但是我没有得到的是,这一行应该立即执行,处理器移动到下面的一行,那么如果在执行这一行时没有准确地接收到数据包,我们如何捕获数据包?是否有某种缓冲区可以保存接收到的数据包直到这一行执行,或者这是如何工作的?
感谢您的耐心
发布于 2014-04-12 20:31:03
第一个问题:
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。
https://stackoverflow.com/questions/23035711
复制相似问题