gpt4 book ai didi

python - 为什么我会收到错误的文件描述符错误?

转载 作者:太空宇宙 更新时间:2023-11-03 15:01:58 24 4
gpt4 key购买 nike

我为我制作的 udp 服务器程序的这段代码收到错误的文件描述符错误

from socket import *

s = socket(AF_INET, SOCK_DGRAM)
s.bind(('', 890))

while True:
(c,a) = s.recvfrom(1024)
msg = 'thanks for requesting'
s.sendto(msg,a)
s.close()

我得到的错误信息是

Traceback (most recent call last):
File "udpserv.py", line 7, in <module>
(c,a) = s.recvfrom(1024)
File "/usr/lib/python2.7/socket.py", line 174, in _dummy
raise error(EBADF, 'Bad file descriptor')
socket.error: [Errno 9] Bad file descriptor

谁能告诉我这个错误是怎么产生的以及如何解决的?

最佳答案

您收到此错误是因为您关闭 套接字然后再次调用recvfrom

如果您在 recvfrom 行之后添加 print,您会注意到对 recvfrom 的第一次调用按预期工作。第二次调用(在循环一次后)抛出您看到的错误。

只需删除 s.close() 即可修复您的代码。 (您不需要关闭与客户端的连接,因为 UDP 没有这个概念,与 TCP 相比,如果您有这个概念的话。)

关于python - 为什么我会收到错误的文件描述符错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36966374/

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