私はマルチスレッドのウェブプロキシを作ろうとしています。私は単一のスレッドを1つだけうまくやることができますが、マルチスレッドを使用しようとすると毎回このエラーがスローされます。`member_descriptor`オブジェクトはソケットオブジェクトで呼び出せません
Traceback (most recent call last):
File "malwareProxy.py", line 25, in newClientInteraction
request = clientSocket.recv(BUFFLEN)
TypeError: 'member_descriptor' object is not callable
私はこれらの輸入を持っている:
import sys
import thread
from socket import *
とコードの重要なビット:
def newClientInteraction(clientSocket, addr):
try:
port = 80
request = clientSocket.recv(BUFFLEN)
....
serverListener = socket(AF_INET, SOCK_STREAM)
serverListener.bind(("", serverPort))
serverListener.listen(100)
print("\nProxy Server listening on port {0}...".format(serverPort))
# Start to listen for connections
while True:
(newsocket, addr) = serverListener.accept()
print("Connection made from: {0}".format(newsocket.getpeername()))
thread.start_new_thread(newClientInteraction, (socket, addr))
助けてください。私はかなりPythonに新しいですし、なぜこのエラーが発生しているのかわかりません。私はこのエラーに関するいくつかの他の投稿を見てきました。答えは複数のファイルとインポートを使用しているプログラマと関係しているようです。私はただ1つのファイルを使用しています。ありがとうございました。
読むために:ありがたいことに、それはこの行を変更することで、修正するのは簡単ですnewsocket、addr)__ 2行上の行。 __thread.start_new_thread__呼び出しで** newsocket **を渡してみてください。 – sal
私は本当に愚かです!ありがとうございました。 –
あなたはそうではありません。それは不幸なスペルミスです。私は答えを加えました。正しい場合はそれを受け入れてください。 :) – sal