OSError: [WinError 10038] 网络服务器

1 投票
1 回答
2280 浏览
提问于 2025-04-17 17:14

我做了一个简单的Python网页服务器。这个服务器运行得很好,可以连接到浏览器,并发送数据。

但是,当我在发送的HTML文档中包含一些文件时,比如用这个标签 <img src="image_path"/> 来插入图片,它就不想发送这些数据了,其他的文件,比如样式表,也一样。

我使用的是Chrome浏览器,并且收到了这些头信息:

GET /img.jpg HTTP/1.1
Host: localhost
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.17 (KHTML, like Gecko) 
Chrome/24.0.1312.57 Safari/537.17
Accept: */*
Referer: http://localhost/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: pl,en-US;q=0.8,en;q=0.6,nb;q=0.4
Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.3

然后我得到了这个错误信息:

Unhandled exception in thread started by <function handler at 0x02C28150>
Traceback (most recent call last):
File "C:\Users\CamIce\Desktop\PyServer v2\server.py", line 16, in handler
data = clientsock.recv(BUFSIZ)
OSError: [WinError 10038] Próbowano przeprowadzić próbę na obiekcie, który nie jest  
gniazdem

因为代码太长了,所以我只能把它放在pastebin上:http://pastebin.com/n19J0y6A

1 个回答

0

你有没有试过把你的接收套接字绑定到一个不同的、不受限制的端口,而不是80端口(比如说,选择一个1024以上的端口)?我觉得可能是Windows防火墙在干扰,或者是其他权限方面的问题。让我觉得奇怪的是,在调用recv()之前你没有收到错误信息,但我对Windows不是很了解。

我看你的代码没有立刻发现什么问题。

撰写回答