python多线程开启多个tcp连接
时间: 2023-10-14 18:04:48 浏览: 244
在Python中,可以使用`socket`和`threading`模块来开启多个TCP连接。下面是一个简单的示例代码,它使用两个线程分别连接到两个不同的TCP服务器,然后发送一些数据并接收响应:
```python
import socket
import threading
def send_data(sock, data):
sock.sendall(data.encode())
response = sock.recv(1024)
print('Response:', response.decode())
def connect_server(host, port):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
sock.connect((host, port))
print('Connected to', host, port)
send_data(sock, 'Hello, server!')
if __name__ == '__main__':
# 开启两个线程分别连接到两个不同的TCP服务器
t1 = threading.Thread(target=connect_server, args=('localhost', 8000))
t2 = threading.Thread(target=connect_server, args=('localhost', 9000))
t1.start()
t2.start()
t1.join()
t2.join()
```
在这个示例中,`send_data`函数用于向TCP服务器发送数据并接收响应。`connect_server`函数用于与指定的TCP服务器建立连接,并在连接成功后调用`send_data`函数发送数据。`main`函数则开启两个线程分别连接到两个不同的TCP服务器。注意,在这个示例中,我们使用了`with`语句来确保`socket`对象在使用完毕后能够被正确地关闭。
阅读全文