.
python制作一个服务器,来一个客户,就建立一个线程。
import socket
import threading
def handle_client(client_socket,address):
while True:
# 接收客户端发送的数据
data = client_socket.recv(1024).decode('utf-8')
if not data:
continue
# 如果客户端发送的是"end",则关闭连接
if data.strip().lower() == 'end':
break
# 将客户端发送的字符串转换为大写
response = data.upper()
# 发送转换后的字符串回客户端
print(f'{address}',response)
client_socket.send(response.encode('utf-8'))
# 关闭客户端连接
client_socket.close()
def start_server():
# 创建套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定地址和端口
server_socket.bind(('0.0.0.0', 12345))
# 监听连接
server_socket.listen(5)
print("Server listening on port 12345...")
while True:
# 接受客户端连接
client_socket, client_address = server_socket.accept()
print(f"Received connection from {client_address}")
# 创建新线程来处理客户端请求
client_thread = threading.Thread(target=handle_client, args=(client_socket,client_address))
client_thread.start()
if __name__ == "__main__":
start_server()
import socket
import time
# 定义服务器地址和端口
SERVER_HOST = '101.42.6.252'
SERVER_PORT = 12345
# 创建 socket 对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client_socket.connect((SERVER_HOST, SERVER_PORT))
# 发送消息给服务器
while True:
# 请输入要发送给服务器的消息(end 是结束):
message = input("")
client_socket.send(message.encode('utf-8'))
time.sleep(1)
# 接收服务器返回的消息
response = client_socket.recv(1024).decode('utf-8')
print(f"{response}")
if message == 'end':
break
# 关闭客户端连接
client_socket.close()