Python socket 服务端通信

将客户端分为APP和设备两种,自己用Python socket写服务端,怎么实现设备通过服务端的转发向APP发送数据的情况

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7750218
  • 你也可以参考下这篇文章:python socket通信(文件、数据传输、异常处理)
  • 除此之外, 这篇博客: Python实现socket网络通信中的 3.3 服务端(支持多个客户端并发访问,版本2) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    # !/usr/bin/env python
    # coding=utf-8
    # filename:test_tcp_server.py
    # creator: tomcat
    # date: 2021-11-16
    
    from socket import *
    from time import ctime
    from datetime import datetime
    import threading
    
    IP = gethostbyname(gethostname())
    print("本机IP: ", IP)
    ADDR = (IP, 12345)
    BUFSIZ = 1024
    
    s = socket(AF_INET, SOCK_STREAM)
    s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
    s.bind(ADDR)
    s.listen(5)  # 最大连接数
    socks = []  # 放每个客户端的socket
    
    
    def connect_handle(c, addr):
        while True:
            recvdata = c.recv(BUFSIZ) 
            if recvdata == 'exit' or not recvdata:
                break
    
            st = datetime.now().strftime('%H:%M:%S')
            print("   recv: %s, %s, %s" % (c.getpeername(), st, recvdata))
    
            msg = str(recvdata) + ' from python sever.'
            c.send(msg.encode())
        c.close()
    
    
    while True:
        c, c_addr = s.accept()
        print('   connect from:', c_addr)
    
        t = threading.Thread(target=connect_handle, args=(c, c_addr))
        t.start()
    
    s.close()
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^