python制作一个服务器,来一个客户,就建立一个线程。

.

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()

相关推荐

  1. 【使用python制作一个ppt】

    2024-04-07 08:26:01       49 阅读
  2. python中def一个方法,一定对应一个return吗

    2024-04-07 08:26:01       40 阅读
  3. 手写一个线

    2024-04-07 08:26:01       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-07 08:26:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-07 08:26:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-07 08:26:01       87 阅读
  4. Python语言-面向对象

    2024-04-07 08:26:01       96 阅读

热门阅读

  1. LeetCode 1049. 最后一块石头的重量 II

    2024-04-07 08:26:01       33 阅读
  2. 网易雷火 暑期实习提前批一面(48min)

    2024-04-07 08:26:01       32 阅读
  3. Ubuntu20.04 中解决端口占用 bind:address already in use

    2024-04-07 08:26:01       31 阅读
  4. ORACLE 12 C估算 用户历史上的CPU消耗

    2024-04-07 08:26:01       34 阅读
  5. MYSQL索引优化

    2024-04-07 08:26:01       34 阅读
  6. Intro and Intermediate Machine Learning

    2024-04-07 08:26:01       43 阅读
  7. 不同系统锁库存的实现方式

    2024-04-07 08:26:01       42 阅读
  8. 开源模型应用落地-qwen1.5-7b-chat-LoRA微调代码拆解

    2024-04-07 08:26:01       35 阅读
  9. 举个例子说明联邦学习

    2024-04-07 08:26:01       38 阅读
  10. 从零开始实现一个RPC框架(二)

    2024-04-07 08:26:01       39 阅读