このアプリケーションでは、snmp トラップを受信するためにバッファが割り当てられます。これは次のとおりです。
unsigned char buffer[65536 - 60 - 8];
しかし、これらの数値は、IP パケットのヘッダー、フッター、および全長について教えてくれます。
snmp トラップにこのサイズのバッファが必要な理由を教えてください。
SNMP は、ネットワークの MTU までのサイズの PDU を許可します。バッファーは、予想される最大のパケットと同じ大きさにする必要があるため、可能であれば、おそらく MTU に対応する必要があります。たとえば、イーサネットでは最大 1500 バイトのフレーム ペイロードが許可されます。
編集: OK、RFC 3416 の正式な定義は次のとおりです。
The maximum size of an SNMP message is limited to the minimum of:
(1) the maximum message size which the destination SNMP entity can
accept; and,
(2) the maximum message size which the source SNMP entity can
generate.
これはネットワークの MTU が関係していると解釈しましたが、もちろん、断片化後にパケットが適切に再構成されていれば、さらに大きなトラップを受信しても問題ありません。
たぶん、「なぜ私のコードに 65536 という数字があるのか」と尋ねているなら、それを書いた人に尋ねるべきでしょうか?