如何实现从服务器到客户端的高效程序通信?

服务器端代码

import socket
def start_server(host='localhost', port=12345):
    # 创建套接字对象
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    # 绑定IP地址和端口号
    server_socket.bind((host, port))
    print(f"服务器启动成功,监听在 {host}:{port}")
    
    # 开始监听,最大连接数为5
    server_socket.listen(5)
    
    print("等待客户端连接...")
    
    # 接受客户端连接
    client_socket, client_address = server_socket.accept()
    print(f"客户端 {client_address} 已连接")
    
    try:
        while True:
            # 接收数据
            data = client_socket.recv(1024)
            if not data:
                break
            print(f"收到来自客户端的数据: {data.decode('utf-8')}")
            
            # 发送数据回客户端
            response = "服务器已收到你的消息"
            client_socket.sendall(response.encode('utf-8'))
    finally:
        # 关闭连接
        client_socket.close()
        server_socket.close()
        print("连接已关闭")
if __name__ == '__main__':
    start_server()

客户端代码

import socket
def connect_to_server(host='localhost', port=12345):
    # 创建套接字对象
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    # 连接到服务器
    client_socket.connect((host, port))
    print(f"已连接到服务器 {host}:{port}")
    
    try:
        # 发送数据到服务器
        message = "你好,服务器!"
        client_socket.sendall(message.encode('utf-8'))
        print(f"发送消息: {message}")
        
        # 接收服务器的响应
        response = client_socket.recv(1024)
        print(f"收到服务器的响应: {response.decode('utf-8')}")
    finally:
        # 关闭连接
        client_socket.close()
        print("连接已关闭")
if __name__ == '__main__':
    connect_to_server()

运行步骤

1、启动服务器:首先运行服务器端代码,它会监听指定的IP地址和端口。

服务器到客户端程序

2、启动客户端:然后运行客户端代码,它将会连接到服务器并发送一条消息。

3、查看输出:你会看到服务器端和客户端都打印了相应的消息,显示通信已经成功完成。

注意事项

确保服务器和客户端在同一网络或可以互相访问。

如果使用的是防火墙,请确保相应端口是开放的。

这个示例使用阻塞式I/O,实际应用中可以考虑使用非阻塞I/O或异步I/O来提高性能。

以上就是关于“服务器到客户端程序”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/661582.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-11-20 06:03
Next 2024-11-20 06:05

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入