1

簡単な Python Web サーバーを作成しました。サーバーは正常に動作し、ブラウザに接続してデータを送信します。送信する HTML ドキュメントにファイルが含まれている場合 (のように<img src="image_path"/>)

データも、スタイル シートなどの他のデータも送信したくありません。私はChrome Webブラウザを使用しており、それらのヘッダーを取得しています:

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

このメッセージにはコードが長すぎるため、ペーストビンに投稿する必要がありました: http://pastebin.com/n19J0y6A

4

1 に答える 1

0

着信ソケットを、ポート 80 ではなく別の非特権ポート (たとえば、1024 より上のポート) にバインドしようとしましたか? これは、Windows ファイアウォールがなんらかの形で干渉しているように思えます。recv() 呼び出しの前にエラーが発生しなかったのは奇妙に思えますが、Windows についてはよくわかりません。

あなたのコードにすぐに問題があるとは思いません。

于 2013-02-26T21:42:06.203 に答える