libnet ビルド関数を使用して http パケットを作成し、libnet_write で送信します。パケットが Wireshark 経由で正常に送信されていることがわかります。tcp および ip ヘッダーは問題ありません。しかし、クライアントは私のパケットを解析できません。たとえば、「HTTP/1.1 200 OK」パケットを送信すると、クライアントは html をロードしません。「HTTP/1.1 302 Moved Temporarily」パケットを送信しても、クライアントがリダイレクト サイトにジャンプしません。等..
1 に答える
0
質問にはコードを提供せず、作成するパケットの例も提供しませんが、HTTP は TCP 上で実行され、単一のパケットのみを書き込むことについて言及しています。これは機能しません。TCP 接続を確立するには、SYN パケットの書き込み、SYN/ACK 応答の読み取り、および最終 ACK の書き込みが必要です。
この 3 つのパケット交換の後でのみ、データを含む TCP パケットを送信できます。
また、なぜこれをやろうとしているのかはまったく明らかではありません。HTTP サーバーでデータを受信する場合は、通常のソケット API を使用してデータを構築して送信する必要があります。
于 2015-03-30T01:48:46.060 に答える