socket connect 多线程
时间: 2024-01-31 12:03:56 浏览: 25
以下是一个示例代码,演示了如何使用socket连接和多线程:
```python
import socket
import threading
def connect_socket(ip, port):
try:
# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置超时时间
s.settimeout(3)
# 连接目标IP和端口
s.connect((ip, port))
# 打印连接成功的信息
print("Connected to {}:{}".format(ip, port))
# 关闭socket连接
s.close()
except Exception as e:
# 打印连接失败的信息
print("Failed to connect to {}:{}".format(ip, port))
def socket_connect_multi_thread(ip, ports):
# 创建线程列表
threads = []
# 遍历端口列表
for port in ports:
# 创建线程,并将连接函数作为参数传入
t = threading.Thread(target=connect_socket, args=(ip, port))
# 启动线程
t.start()
# 将线程添加到线程列表中
threads.append(t)
# 等待所有线程执行完毕
for t in threads:
t.join()
# 示例调用
ip = "127.0.0.1"
ports = [80, 443, 8080, 3306]
socket_connect_multi_thread(ip, ports)
```
该示例代码使用了socket模块和threading模块。首先定义了一个`connect_socket`函数,用于连接指定的IP和端口,并打印连接成功或失败的信息。然后定义了一个`socket_connect_multi_thread`函数,用于创建多个线程,并分别连接指定的IP和端口。最后,示例调用了`socket_connect_multi_thread`函数,传入了一个IP和端口列表。