我创建了一个UDP通信器。如果我收到的消息大小大于recv()接受的消息,那么我想处理该异常:
OSError:[WinError 10040]在数据报套接字上发送的消息大于内部消息缓冲区或某些其他网络限制,或者用于接收数据报的缓冲区小于数据报本身。
我怎样才能做到这一点?是否可以像这样安全处理WinError:
try:
message, comm_point = self.clientSocket.recvfrom(MSG_SIZE)
except WinError:
...do some job
我知道WinError.h是一个很大的库,在我看来,在try块运行时,如果系统调用它们,我可能会处理其他一些WinErrors。
在我看来,您可能正在使用套接字。在这种情况下,如果您处理套接字错误,则不必处理特定的OSError。您可以执行以下操作:
try:
message, comm_point = self.clientSocket.recvfrom(MSG_SIZE)
except socket.error, e:
#Do some job ex.
print "Error receiving data: %s" % e
sys.exit(1)
这样,套接字将引发错误,您将捕获该错误,同时仍会收到与套接字无关的其他错误,但它们是OSErrors
参考,以获取更多帮助:https : //www.networkcomputing.com/data-centers/python-network-programming-handling-socket-errors
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句