gpt4 book ai didi

python - 操作系统错误 : [Errno 9] Bad file descriptor in python 3

转载 作者:太空狗 更新时间:2023-10-30 02:46:35 25 4
gpt4 key购买 nike

我是一名初级/中级程序员,目前正在尝试使用 Python 3 编写一个简单的 Web 服务器。但是,每当我运行该模块时,我都会收到 OSError: [Errno 9] Bad file descriptor。我已经在互联网上搜索以寻找答案,但我似乎无法自己解决这个问题。这是代码和回溯:

#import socket module

from socket import *

serverSocket=socket(AF_INET,SOCK_STREAM)

#Prepare a server socket

serverSocket.bind(('IP address', 8000))
serverSocket.listen(1)

while True:
#Establish the connection

print('Ready to serve...')

(connectionSocket, addr) = serverSocket.accept()

print ('connected from',addr)

try:


message=connectionSocket.recv(1024)
filename=message.split()[1]
print (filename)

filename=message.split()[1]

f=open(filename[1:])

outputdata=f.read()

#Send one HTTP header line into socket

connectionSocket.send('HTTP/1.1 200 OK')

#Send the content of the requested file to the client

for i in range(0, len(outputdata)):
connectionSocket.send(outputdata[i])
connectionSocket.close()
except IOError as err:
print ('IO error')


#Send response message for file not found

connectionSocket.send(b'file not found')

#Close client socket
connectionSocket.close()
serverSocket.close()

回溯:

Traceback (most recent call last):
File "/Users/BigRed/Desktop/SOS/webServer.py", line 17, in <module>
(connectionSocket, addr) = serverSocket.accept()
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/socket.py", line 184, in accept
fd, addr = self._accept()
OSError: [Errno 9] Bad file descriptor

最佳答案

当出现 OIError 时,您将调用 serverSocket.close()。但是当你重新进入 while 循环时,你调用了 serverSocket.accept() 而没有调用 serverSocket=socket(AF_INET,SOCK_STREAM),这失败了,因为你'我们调用了 close()

查看此 post

希望得到帮助

PD: Django 开发人员不经常使用套接字。 =)

关于python - 操作系统错误 : [Errno 9] Bad file descriptor in python 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19624684/

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