【问题标题】:Python : UDP Socket How to Waiting Client Side Reply Bytes StringPython:UDP Socket如何等待客户端回复字节字符串
【发布时间】:2013-01-15 12:22:15
【问题描述】:
import socketserver
import struct
from collections import namedtuple

class MyUDPHandler(socketserver.BaseRequestHandler):
    def handle(self):
        data = self.request[0].strip()
        socket = self.request[1]
        if len(data) >= 34:
            format_ = "6shhih50s2s"
            MyStruct = namedtuple("MyStruct", "sMark nPackLen nFlag nGisIp nPort sData sEnd")
            tuple_to_send = MyStruct(sMark="\r\n{}".format("*KW").encode("ascii"), 
                     nPackLen=struct.calcsize(format_),
                     nFlag=0x0002,
                     nGisIp=0,
                     nPort=0,
                     sData= "*KW,AA05954122,015,080756,#".encode("ascii"),
                     sEnd="\r\n".encode("ascii"))
            string_to_send = struct.pack(format_, *tuple_to_send._asdict().values())
            socket.sendto(string_to_send, self.client_address)
            print('waiting Reply Bytes String from client..') //how to get the reply bytes  string from Client side?
if __name__ == "__main__":
    HOST, PORT = "", 6903
    server = socketserver.UDPServer((HOST, PORT), MyUDPHandler)
    server.serve_forever()

第1步:服务器接收GPS设备字节字符串,并会得到一个动态IP地址
第二步:当服务器已经获取到客户端动态IP后,服务器会向客户端(GPS设备)发送命令。
第 3 步:客户端将发送回一个字节字符串,但我不知道如何在此处捕获回复字节字符串。

【问题讨论】:

    标签: python c udp client-server


    【解决方案1】:

    如果服务器回复发件人的 IP 地址和端口,您可以这样做

    print('waiting Reply Bytes String from client..') //how to get the reply bytes  string from Client side?
    bytes = socket.recvfrom(1024);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-10
      • 1970-01-01
      • 1970-01-01
      • 2019-12-22
      相关资源
      最近更新 更多