【Python3】「OSError: [Errno 40] Message too long」が発生した場合の対処法

UDPでソケット通信を行なっている際に「OSError: [Errno 40] Message too long」のエラーが発生したので、
対処法を説明したいと思います。

まず以下のコマンドで現在の最大バイト数を確認します。

sysctl -a | grep udp.maxdgram

容量を確認したら、以下のコマンドでサイズを変更しましょう。

sysctl -w net.inet.udp.maxdgram=65535

これで設定したサイズ以下のデータ量であれば、「OSError: [Errno 40] Message too long」のエラーは発生しなくなります。

おまけ

OSごとのデフォルトの最大バイト数は以下の通りです。

OSバイト数
Mac9216
Linux131071
Windows制限なし

Python

Posted by sena