【RaspberryPi/python3】udpをlistenするプログラムが終了できない?(ポートlistenしているのを解放できない?)
Q&A
Closed
解決したいこと
udp通信をしているプログラムを止めたいのですが、どうしたらいいかわからない。
(単にkillの使い方をわかっていないだけなのかもしれないし、正常終了の仕方を知らないだけなのかもしれないので、誰か教えてください。。。)
発生している問題・エラー
以下のように一度は正常に動いて、通信相手のマイコンから「A」という信号を一秒に一回受け取っています。
ここは正常だと思います。
が、二回目からはできないです
おそらく、すでに8888ポートを使っているプログラムが終了できていないという事なのでしょうけど、Linuxはアプリのユーザーとしてしか使ってこなかったので、お手続きを、どうしたらいいのかがわかりません。
pi@hogehoge:~ $ nc -4lu 192.168.11.5 8888
AAAAAAAA^Z
[1]+ 停止 nc -4lu 192.168.11.5 8888
pi@hogehoge:~ $ nc -4lu 192.168.11.5 8888
[2]+ 停止 nc -4lu 192.168.11.5 8888
pi@hogehoge:~ $ exit
exit
停止しているジョブがあります。
pi@hogehoge:~ $
同じことはpythonでも起こっていてudpをlistenするpythonプログラムをctrl+zで停止させると、1回目は動きますが、そのあとは以下のようなメッセージが出てしまいます。
(0が出ているのは、「何も受信していない」受信状況を示すモニター用の表現でして、正しいです)
pi@hogehoge:~ $ python3 picar-udp-control_grobal.py
0
0
0
0
^Z
[3]+ 停止 python3 picar-udp-control_grobal.py
pi@hogehoge:~ $ python3 picar-udp-control_grobal.py
Traceback (most recent call last):
File "picar-udp-control_grobal.py", line 303, in <module>
sock.bind((UDP_IP, UDP_PORT))
OSError: [Errno 98] Address already in use
pi@hogehoge:~ $
※ユーザー名とコンピュータ名は捏造です。
0