0

Wifi アクセス ポイントに 2 台の電話が接続されていますが、どちらもプライベート範囲に IP があります。電話機の 1 つは HTTP サーバーを実行しており、もう 1 つの電話機はクライアントのように動作します。クライアントは、GET 要求データを URL クエリ文字列の名前と値のペアとしてサーバーに送信します。現時点では、サーバーはクエリ文字列の受信時に HTTP.OK でのみ送信しています。

何が起こっているのかというと、クライアントが静止しておらず、動き回っている可能性があるため、サーバー側でクライアントから送信されたすべてのデータを取得していないため、Wifi アクセス ポイントの範囲内に常にいることができない可能性があります。 . 送信されたすべてのデータが実際にサーバーによって受信されるようにしたいと考えています。

どのようなエラー修正を実装する必要がありますか? 関連する HTTP エラー コードなどを確認できますか?

4

3 に答える 3

1

HTTP サーバーが GET 要求でクエリ文字列全体を受信しない場合、これらのパラメーターは要求の最初の行にあるため、HTTP 要求はおそらく有効ではありません。

サーバーはリクエストを処理できず、この場合、ステータス コード 400 (Bad Request) が返される可能性があります。

クライアントがこれを受信した場合 (リクエストの送信に失敗し、応答を受信する可能性は低いと思われます)、再送信する必要があることがわかります。一般に、自動再送信、チェックサム、タイムアウトなどの TCP 接続のプロパティは、配信の成功または失敗の判断に必要なすべてです。

于 2010-01-10T01:41:39.530 に答える
1

クライアントでタイムアウトを確認する必要があります。それは、使用するプロセス/言語によって異なります。

編集: http://wiki.forum.nokia.com/index.php/Using_Http_and_Https_in_Java_ME

タイムアウトを設定して IO エラーをキャッチするだけのようです。

于 2010-01-10T01:34:42.773 に答える
1

時期尚早の最適化。

接続の整合性は、ネットワーク スタックの下位部分で既に処理されています。そのため、リクエストの途中でドロップアウトがあった場合 (複数のパケットにまたがると仮定して)、TCP スタックはデータをサーバーに渡す前にそれらを回復しようとします。

これを自分で証明する必要がある場合は、クエリの最後の部分としてチェックサムを追加してください。

C.

于 2010-01-11T12:48:33.807 に答える