我正在尝试监听并同时向多个套接字发送数据。当我运行程序时,我得到错误说:
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 704, in __init__
if sock.getsockopt(SOL_SOCKET, SO_TYPE) != SOCK_STREAM:
OSError:[Errno 9]错误的文件描述符
第一个套接字正确启动,但是一旦我尝试启动一个新套接字,我就会收到错误。
class bot:
def __init__(self, host, port):
self.host = host
self.port = port
sock = socket.socket()
s = None
def connect_to_server(self):
self.s = ssl.wrap_socket(self.sock)
self.s.connect((self.host, self.port))
上面是课程,然后我正在运行几个实例。
def run_bots(bots):
for bot in bots:
try:
threading.Thread(target=bot.connect_to_server()).start()
except:
print(bot.host)
print("Error: unable to start thread")
bots = []
b = bot('hostname.com', 1234)
b1 = bot('hostname1.com', 1234)
bots.append(b)
bots.append(b1)
run_bots(bots)
我不知道该怎么办。任何人都知道可能出现什么问题?
答案 0 :(得分:1)
您正在使用相同的套接字。为每个机器人创建一个:
a >= b