pythonでソケット通信を機器と行っています。
python socket.py <arg_1> <arg_2>
引数が1つor2つで分けて処理してコマンド送信しているのですが、
受信データが少ないコマンドを送信したときは受信データも問題ないのですが、
受信データの戻りが多いコマンドを送信した時
(intで7680点が戻り値として期待されているコマンド)
受信データがbyte型\x00
が1400個しか受信しません。
その後、s.connect()
が出来なくなってしまいます。
これは、なぜなのでしょうか?
revc(4096)
が少ないからかなとrevc(10000)
にしても同じでした。
詳しい方がいらっしゃいましたら、アドバイスいただければ幸いです。
python
1<socket.py> 2 3# coding:utf-8 4 5import socket 6import sys 7import struct 8 9ip = 'xxx.xxx.xxx.xxx' 10port = xxxx 11dcs = (ip, port) 12 13s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 14s.connect(dcs) 15 16if len(sys.argv) == 2: 17 line = sys.argv[1] 18elif len(sys.argv) == 3: 19 lin = sys.argv[1] + ' ' + sys.argv[2] 20 21print('send command\t:{}'.format(line)) 22s.send(line.encode()) 23data = recv(4096) 24 25print('data\t\t:{}'.format(data))
txt
1b`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00・・・\x00 (\x00が1400個)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/07 01:39