• Python socket编程客户端与服务端通信


    [本文出自天外归云的博客园]

    目标:实现客户端与服务端的socket通信,消息传输。

    客户端

    客户端代码:

    from socket import socket,AF_INET,SOCK_STREAM
    
    #服务端的ip地址
    server_ip = '127.0.0.1'
    #服务端socket绑定的端口号
    server_port = 20000
    
    if __name__ == '__main__':
        while True:
            str_msg = input("请输入要发送信息:")
            if str_msg != "":
                bytes_msg = bytes(str_msg, encoding = "gbk")
                client = socket(AF_INET,SOCK_STREAM)
                client.connect((server_ip,server_port))
                client.send(bytes_msg)
                print(str(client.recv(8192),encoding="gbk"))
                client.close()

    客户端(Mac系统)运行截图:

    服务端

    服务端代码:

    from socketserver import BaseRequestHandler, TCPServer
    
    #指定接收消息的客户端ip列表
    target_clients = ["10.235.0.109"]
    
    class EchoHandler(BaseRequestHandler):
        def handle(self):
            for target_client in target_clients:
                if target_client in self.client_address:
                    print('Got connection from', self.client_address)
                    msg = self.request.recv(8192)
                    if not msg:
                        break
                    ret_msg = bytes("自动回复:消息已收到!", encoding = "gbk")
                    self.request.send(ret_msg)
                    print(str(msg, encoding = "gbk"))
                    break
    
    if __name__ == '__main__':
        from threading import Thread
        NWORKERS = 16
        #绑定socket服务端所在ip和端口号
        serv = TCPServer(('', 20000), EchoHandler)
        for n in range(NWORKERS):
            t = Thread(target=serv.serve_forever)
            t.daemon = True
            t.start()
        serv.serve_forever()

    服务端(Windows系统)运行截图,注意要设置cmd活动页代码为936(chcp 936)方可显示中文,设置cmd属性中的字体为点阵字体:

    参考资料:Python3-cookbook 11.2 创建TCP服务器

  • 相关阅读:
    MySQL 入门教程
    .net 定时服务
    【搜索面板】规格信息单选
    【搜索面板查询】品牌单选(term过滤查询)
    【搜索框查询】搜索功能+搜索框内容回显
    商品上下架(发布订阅模式)
    Canal广告缓存实现(工作队列模式)
    FastDFS分布式文件系统(适合存储小文件 )
    跨域(浏览器限制本行为)
    购物网站项目
  • 原文地址:https://www.cnblogs.com/LanTianYou/p/6890383.html
Copyright © 2020-2023  润新知