Python实现TCP客户端和服务器(多线程)
时间: 2024-01-10 13:06:24 浏览: 88
好的,下面是Python实现TCP客户端和服务器(多线程)的代码示例:
TCP服务器端代码:
```python
import socket
import threading
# 定义监听的IP和端口号
bind_ip = "0.0.0.0"
bind_port = 9999
# 创建TCP服务器套接字
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((bind_ip, bind_port))
server.listen(5)
print("[*] Listening on {}:{}".format(bind_ip, bind_port))
# 处理客户端请求的线程函数
def handle_client(client_socket):
# 打印客户端发送的数据
request = client_socket.recv(1024)
print("[*] Received: {}".format(request))
# 发送响应数据
client_socket.send(b"ACK!")
client_socket.close()
while True:
# 等待客户端连接
client, addr = server.accept()
print("[*] Accepted connection from {}:{}".format(addr[0], addr[1]))
# 创建新线程处理客户端请求
client_handler = threading.Thread(target=handle_client, args=(client,))
client_handler.start()
```
TCP客户端代码:
```python
import socket
# 定义连接的服务器IP和端口号
target_ip = "127.0.0.1"
target_port = 9999
# 创建TCP客户端套接字
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((target_ip, target_port))
# 发送数据给服务器
client.send(b"Hello, server!")
# 接收服务器的响应数据
response = client.recv(1024)
print("[*] Received: {}".format(response))
client.close()
```
这里的TCP服务器端使用了多线程来处理客户端请求,每个新连接都会创建一个新的线程来处理。TCP客户端向服务器发送数据后,会等待服务器的响应。
阅读全文