UDPの受信バッファと送信バッファのサイズを変更しようとしています。リアルタイムアプリケーションの要件に応じて、Txバッファを6バイトに設定し、Rxバッファを22バイトに設定する必要があります。私はARM A9プロセッサでAngstromを実行しています。 (アルテラサイクロン対soc)。クライアントとサーバーはWiFiを介して一時モードで通信します。
root@cyclone5:/proc/sys/net/core# cat rmem_max
163840
root@cyclone5:/proc/sys/net/core# sysctl -w rmem_max=22
sysctl: cannot stat /proc/sys/rmem_max: No such file or directory
ファイルはパスにありますが、 /proc/sys/net/core
パスstat
内のファイルを探しています。/proc/sys/
また、以下を試しました。
root@cyclone5:/proc/sys/net/core# sysctl -w net.core.rmem_max=22
sysctl: setting key "net.core.rmem_max": Invalid argument
net.core.rmem_max = 22
誰でもこの問題を解決できますか?
バッファのサイズ変更の目的は、バッファにパケットをキューに入れたくないためです。と呼び出されるたびに、recvfrom
古いパケットを新しいパケットで上書きできますsendto
。
編集する:
この問題の詳細をデバッグしながら、このバッファに設定できる最小値は2240バイトであることがわかりました。
root@cyclone5:/proc/sys/net/core# echo 2238 > rmem_max
-sh: echo: write error: Invalid argument
root@cyclone5:/proc/sys/net/core# echo 2239 > rmem_max
-sh: echo: write error: Invalid argument
root@cyclone5:/proc/sys/net/core# echo 2240 > rmem_max
root@cyclone5:/proc/sys/net/core# cat rmem_max
2240
この数字を22バイトまで減らす方法はありますか?