zoukankan      html  css  js  c++  java
  • 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服务器

  • 相关阅读:
    layout_weight使用
    Android sdk manager 下载速度慢的问题
    详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy
    object-c(oc)内存管理机制详解
    xmpp实现的即时通讯聊天(二)
    xmpp实现的即时通讯聊天(一)
    iOS开发消息推送原理
    指定的转换无效。
    Oracle11g +Win 64+PLSQL9.0
    数据库连接字符串
  • 原文地址:https://www.cnblogs.com/LanTianYou/p/6890383.html
Copyright © 2011-2022 走看看