今月いっぱいで集中して書かないといけない文章が2つあり,あまり他の事に手が回っていない.
昨日一応1つは手を離れた(チェックしてもらってまた戻ってくるけど)ので,
気になっていた Python 通信の勉強の続きを少し(残っている1つの方が大変なんだけど).
この Python のプログラミングも8月中には目的のところもまで持っていきたい.
プログラム間通信の仕方を勉強していた.
前回までに UDP を用いたブロードキャストの仕方は学んだので,それを少しだけ拡張する.
サーバー側のプログラムが,クライントからのブロードキャストメッセージを待ち受けているのは前回と同じ.
でも,受け取ったメッセージが "Where are you?" だったときは,
サーバー側は自分の IP アドレスをプロードキャスで返信して,クライアントに知らせるようにした.
クライアント側は,"Hello!" と "Where are you?" の2種類のメッセージをブロードキャストする.
サーバー側から "I'm xxx" と返信があれば,それを受信して終了メッセージを発信して終了する.
サーバー側は終了メッセージを受信したら終了する.
クライント側では,送信と受信を並行して行いたいので,これも以前に学んだ fork を使って,プロセスを複製した.
子プロセスはブロードキャスト発信,親プロセスは受信のため待機する.
親プロセスがサーバーからの返信を受信したら,子プロセスを kill して自分自身も終了する.
上記 client と sever をそれぞれ同一ネットワーク上に存在する1台のマシン(計2台)で実行してみる.
実行結果は以下のようになる.
サーバー側,クライアント側どちらを先に起動してもよい.
サーバーの存在確認,ならびに,その IP アドレスの取得に使えると思う.
プログラム間通信関連メモの目次
昨日一応1つは手を離れた(チェックしてもらってまた戻ってくるけど)ので,
気になっていた Python 通信の勉強の続きを少し(残っている1つの方が大変なんだけど).
この Python のプログラミングも8月中には目的のところもまで持っていきたい.
プログラム間通信の仕方を勉強していた.
前回までに UDP を用いたブロードキャストの仕方は学んだので,それを少しだけ拡張する.
サーバー側のプログラムが,クライントからのブロードキャストメッセージを待ち受けているのは前回と同じ.
でも,受け取ったメッセージが "Where are you?" だったときは,
サーバー側は自分の IP アドレスをプロードキャスで返信して,クライアントに知らせるようにした.
クライアント側は,"Hello!" と "Where are you?" の2種類のメッセージをブロードキャストする.
サーバー側から "I'm xxx" と返信があれば,それを受信して終了メッセージを発信して終了する.
サーバー側は終了メッセージを受信したら終了する.
クライント側では,送信と受信を並行して行いたいので,これも以前に学んだ fork を使って,プロセスを複製した.
子プロセスはブロードキャスト発信,親プロセスは受信のため待機する.
親プロセスがサーバーからの返信を受信したら,子プロセスを kill して自分自身も終了する.
=== Server === | === Client === | |
from socket import * | from socket import * |
上記 client と sever をそれぞれ同一ネットワーク上に存在する1台のマシン(計2台)で実行してみる.
実行結果は以下のようになる.
=== Server1 === | === Client1 === | |
7:53.barbaresco[100269]python udp_server.py | 7:53.soave[114]python udp_client.py |
サーバー側,クライアント側どちらを先に起動してもよい.
サーバーの存在確認,ならびに,その IP アドレスの取得に使えると思う.
プログラム間通信関連メモの目次