gpt4 book ai didi

python - 处理大于缓冲区大小的帧

转载 作者:行者123 更新时间:2023-12-03 07:51:43 26 4
gpt4 key购买 nike

我创建了一个UDP通信器。如果我收到的消息大小大于recv()接受的消息,那么我想处理该异常:

OSError: [WinError 10040] A message sent on a datagram socket waslarger than the internal message buffer or some other network limit,or the buffer used to receive a datagram into was smaller than thedatagram itself.


我怎样才能做到这一点?是否可以安全地处理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

关于python - 处理大于缓冲区大小的帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65025730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com