0

このソケットプログラミングの初心者です... SOCK_RAWを使用してUDP client_serverプログラムを作成しようとしました.サーバー部分からメッセージを送信できます.しかし、クライアント部分でガベージ値を取得しています. また、受信メッセージのパケット サイズも異なります。SOCK_RAW を使用してこのクライアント サーバー プログラムを実行する方法を教えてください。私はこのクライアントサーバーをeth0とeht1で試しました.eth0からeth1に1パケットを送信しようとしました送信側は「OK」メッセージを表示しています..しかし、受信したデータはガベージです..UDPプロトコルを使用して通常のクライアントサーバープログラムを実行する前に.I通常のudpクライアントサーバーから正しい出力を取得しました。SOCK_ROWで試したところ、送信部分にエラーが表示されました。

4

2 に答える 2

2

SOCK_DGRAMを使用して作業を簡素化- カーネルがデータグラム ヘッダーを処理します。有効な IP アドレスとデータを提供するだけで済みます。SOCK_RAW を使用して UDP ヘッダーを (送信前に) 追加し、(受信時に) 解析するのはユーザーの責任です。

于 2013-01-30T06:39:44.207 に答える
0

ほとんどの場合、IP および UDP ヘッダーが表示され、それらを「ガベージ」と呼んでいます。それが SOCK_ROW の機能です。SOCK_ROW を使用しているときにメッセージ コンテンツを取得する場合は、プロトコル ヘッダーを解析してスキップする必要があります。

于 2013-01-30T06:12:49.293 に答える