python的新手,我正在尝试使用python 2-7实现发送器和接收器,我得到了或多或少的代码,但有些东西仍然逃避我,我无法找到解释这很简单:
while True:
try:
#...
except:
raise ValueError
我明白这是一个执行try代码的while循环,直到异常发生,然后执行except下的代码,但是什么是ValueError?
另一件事,在try块我有这个:
message, address = self.receive()
其中:
def receive(self):
return self.s.recvfrom(4096)
据我所知,这是从套接字接收数据,返回值是一对(字符串,地址),其中string是表示接收数据的字符串,address是发送数据的套接字的地址, 但是我得到的不是这条线应该立即执行而处理器移动到下一条线路,所以如果在执行此线路的时刻没有收到数据包,我们如何捕获数据包?是否有某种缓冲区可以保存收到的数据包,直到该行执行或者这是如何工作的?
感谢您的耐心
答案 0 :(得分:0)
第一个问题:
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个字节。请注意,第一个参数in the documentation的名称是 bufsize 。