Windowsパソコン(サーバー)とRaspberryPi(クライアント)間でpythonによるsocket通信を行いたいです。データは5メガバイトほどです。Windowsパソコンはanacondaのspyderを使っています。プログラムを書いてみました。サーバーのプログラムのwhile文の抜け出し方を教えてください。違った通信方法でオススメ、簡単なものもあれば教えてください。
# -*- coding: utf-8 -*- #サーバー import socket def main(): soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) soc.bind(("******", ******)) #ホストとポートは隠します soc.listen(1) soc, addr = soc.accept() data_sum = '' while True: data = soc.recv(1024) #1024バイトづつ分割して受信する data_sum = data_sum + data #受信した分だけ足していく if データを全て受信したらTrue: #どのようにデータを全て受信したかどうか判断すればよいか分からない break print data_sum #受信したデータを表示 if __name__ == '__main__': main()
# -*- coding: utf-8 -*- #クライアント import socket def main(): soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) soc.connect(("******", ******)) #ホストとポートは隠します data = 'a' * 1024 * 1024 * 5 #5メガバイトのデータを生成 soc.send(data) #5メガバイトのデータを送信 if __name__ == '__main__': main()
python 2環境なら、質問のタグにPython 2.7を含めてくださいな。
回答2件
あなたの回答
tips
プレビュー