- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ラズパイで1秒間隔で文字を送って、PC側で表示)
ラズパイで1秒間隔で文字を送って、PC側で表示
このQ&Aのポイント
- ラズパイのpythonを使って、windowsPCにVisual Studio 2013で作った簡易のtcpサーバーに接続して、1秒ぐらいの感覚で適当な文字データを送信して、サーバー側に表示するようにしたいと思っています。
- サーバー側で表示する際に、クライアントの起動を停止しないとサーバー側のテキストを表示するボックスに文字が表示されない現象が出ています。
- クライアント側のコードを修正し、適当なテキスト文字を1秒間隔で送信して、サーバー側のテキストボックスに表示するように設定したいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
回答ではなく"確認"ですけど: STR.ReadLine() は 改行までを読み込んでくれるのでしょうか? であるなら、クライアント側は文字列の末尾に改行をくっつけて送信せんと いつまでたってもReadLine()から抜けてくれませんけど。
その他の回答 (2)
- wormhole
- ベストアンサー率28% (1626/5665)
回答No.2
ラズベリーパイとか関係なしにTCP/IPの通信プログラム組んだことありますか? >sock.send(b'Hello world') としても実際の送信が、その単位で行われるわけではありませんし 受信する側も(送信側のsock.send()で送った単位)で受信するわけではありませんよ。 https://www.ibm.com/developerworks/jp/linux/library/l-sockpit/ の落とし穴5.を参照してみてください。
質問者
お礼
回答頂きありがとうございます。TCP通信を勉強せねばと思いもうすでに10年以上経過しておりまして、visual studio2013などが簡単に手に入る昨今知識をちゃんと得たいと思っております。大変助かります。
- heburusu
- ベストアンサー率85% (140/164)
回答No.1
ReadLineでブロックしてしまうと表示に関する処理も止まってしまいますので、 受信処理用にスレッドを作成してあげる必要があるかと思います。
質問者
お礼
回答頂きありがとうございます。TCPサーバーの勉強をしているとよく”スレッド”という言葉を聞きます。クライアントを複数同時に接続できるとかこれも必須の知識だなと思いますね。サーバープログラミングのサンプルの基礎が記載されているのが助かります。活用させていただきます。
お礼
回答頂きありがとうございます。今クライアント側の電文送信内容を sock.send(b'Hello world\n') 最後に改行を入れたところ、ReadLine()から抜けてくれるようになりました。 助かりました。