使用python编写TCP服务端,侦听端口,支持多个客户端连接并相互通讯
时间: 2024-11-15 14:27:07 浏览: 29
在Python中,你可以使用内置的socket模块来创建一个TCP服务器,监听特定端口,并处理多个客户端的连接请求。以下是一个简单的例子,展示如何实现这个功能:
```python
import socket
# 创建一个TCP/IP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置服务器地址和端口号
host = '0.0.0.0' # 可以改为具体的IP地址,如'localhost'
port = 8000 # 你想监听的端口
# 绑定端口
server_socket.bind((host, port))
# 设置最大连接数,这里设置为5,可根据需要调整
server_socket.listen(5)
print(f"Server is listening on {host}:{port}...")
while True:
# 接受新的连接
client_socket, client_address = server_socket.accept()
print(f"Accepted connection from: {client_address}")
# 每个新连接都会创建一个新的线程,以便并发处理客户端请求
client_thread = threading.Thread(target=handle_client, args=(client_socket,))
client_thread.start()
def handle_client(client_socket):
try:
while True:
data = client_socket.recv(1024) # 接收数据,1024字节为默认大小
if not data: break # 如果接收空数据,表示客户端已断开连接
# 对接收到的数据进行处理,例如打印或回复
print("Received:", data.decode())
# 发送响应给客户端
response = "Hello from server!" + "\n"
client_socket.sendall(response.encode())
except Exception as e:
print(f"Error occurred: {e}")
finally:
# 断开连接后关闭套接字
client_socket.close()
#
阅读全文