1

ascii コマンドをステッパー ドライブ (移動コマンドである RV) に送信しようとしています。しかし、私が試したすべてのことは、「文字列」の先頭に余分な文字を追加するPython(だと思います)で終わります。この場合、「g」が追加されました。ステッパーコマンドターミナルは「g」を追加しません。

Wireshark から:

0000  00 04 a3 22 56 6e f0 1f  af 0b ba fd 08 00 45 00   ..."Vn.. ......E.
0010  00 20 35 b5 00 00 80 11  00 00 c0 a8 4b 62 c0 a8   . 5..... ....Kb..
0020  4b 96 d6 a3 1e 5f 00 0c  18 67 52 56 0a 20         K...._.. .gRV.   

パイソン:

def main():
    import socket

    data1 = bytes('RV\n ', 'ascii')
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.connect(("108.108.108.150",7775))
    s.send(data1)


if __name__ == '__main__':
    main()
4

1 に答える 1

1

すべてのバイトの意味を知っている場合を除き、パケット内の「印刷可能な」文字列を仮定するべきではありません。この特定のケースでは、バイト「.g」または 0x18 0x67 が UDP チェックサムです。AFAIK、どういうわけか無効にすることができます。受信者がこのパケットを取得すると、データ フィールドに 52 56 0a 20 ("RV\n ") が含まれます。そのため、ペイロードと [おそらく] udp ソース ポートをわずかに変更することで、常に「cRV」または「eRV」を取得します。

于 2013-07-29T15:04:37.463 に答える