問題タブ [packets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
380 参照

statistics - 同じペイロードを持つ TCP パケットを見つける確率は?

私は今日、同じペイロードを持つ特定のインターフェイスで送信される TCP パケットを特定することについて、開発者と話し合いました。彼は、TCP パケットがシステム レベルで構築される方法のために、等しいペイロードを持つ TCP パケットを見つける可能性は (同じデータが数回送信されたとしても) 非常に低いと私に言いました。システムの MTU 設定 (通常は 1500 バイト) などが原因である可能性があることは認識していましたが、実際にどのような確率統計を見ているのでしょうか? 一致するペイロードの識別を容易にする特定のプロトコルはありますか?

0 投票する
4 に答える
5950 参照

java - 1 つの UDP データグラムで複数のデータを送信する

私は単純な IM システム (最も単純なバージョンの Windows メッセンジャーによく似ています) の作成に関するネットワーク プログラミングの割り当てに取り組んでいます。

仕様では、1 つのデータグラム パケットで 4 つのフィールドを超えるデータを送信する必要があると指定されています。これらは次のとおりです。

これらすべてのデータを 1 つのパケットにパックする方法を教えてください。

更新:これまでのところ助けてくれてありがとう、しかし、私は文字列文と文字列を持っていると言いますパケットに個別にパッチを当てる通常の方法からは

しかし、「from」文字列を文文字列とともに sendData に正確に追加するにはどうすればよいですか?

0 投票する
3 に答える
7809 参照

c# - TCP経由でパケットを送信すると、2つのパケットに分割されます

サーバークライアントモデルを使用してC#でアプリケーションを開発しています。このモデルでは、サーバーがビット配列を含むバイト配列をクライアントに送信し、クライアントがそれを画面にロードし、サーバーに「OK」を送信し、サーバーが送信します。別の画像など。

画像バッファの長さは異なります。通常は60kbから90kbの間ですが、問題ではないことを確認しました。localhostを使用して、クライアントとサーバーを同じコンピューターに配置すると、すべてが正常に機能します。サーバーはbeginSendを実行し、クライアントはendReceiveを実行し、バッファー全体が送信されます。

しかし、私は現在ワイヤレスネットワークでこれをテストしており、何が起こるかは次のとおりです。

  • サーバーは画像を送信します。
  • クライアントでコールバック関数data_receivedが呼び出されますが、読み取るのは1460バイトだけです(MTU-なぜ?UDPだけにすべきではないのですか?)
  • クライアントでコールバック関数data_receivedが再度呼び出され、残りのバッファー(1000バイトまたは100キロバイト)が使用されます...

これは常にこのように、1460バイトの最初のパケットが受信され、次に2番目のパケットに残りが含まれます。

受信した両方のバイト配列を結合することでこれを回避できますが、これは正しくないようです。なぜこれが起こっているのかさえわかりません。ネットワークに制限はありますか?では、なぜC#はデータ全体が送信されるのを待たないのでしょうか。つまり、TCPです。心配する必要はありませんよね?

とにかく、どんな助けも素晴らしいでしょう!
乾杯

0 投票する
1 に答える
263 参照

delphi - 接続のパケットを置き換える

接続のパケット内の文字列を置き換える方法は? デルファイを使用しています。

0 投票する
3 に答える
1482 参照

c++ - 可変長構造体の作り方

ヘッダー、トレーラー、および可変長のペイロード フィールドを持つパケットを作成する必要があります。これまでのところ、ペイロードにベクトルを使用しているため、構造体は次のように設定されています。

ベクターのメンバーにアクセスしようとすると、セグ フォールトが発生し、構造体全体の sizeof が 32 になります (ベクターに約 100 の要素を追加した後)。

これは良いアプローチですか?何が良いですか?

この投稿を見つけました Variable Sized Struct C++ 彼は char 配列を使用していましたが、私はベクトルを使用しています。

0 投票する
1 に答える
1386 参照

c# - Web サービス プロキシ経由でリクエストを単一のパケットとして送信する方法 (チャンクしない)

C# で Web サービスを利用しようとしています。Web サービスのドキュメントでは、Web サービスは複数のパケットではなく単一のパケット/ストリームとしてのみ要求を受け入れると記載されています。

Visual Studio で Web 参照を介して Web サービスにアクセスするときに、この設定を変更する方法を知っている人はいますか?

リクエストを送信すると、SOAPException「受信リクエストを解析できません」というエラーが発生します。これが理由だと思います。

ご協力いただきありがとうございます!

-スティーブ

0 投票する
2 に答える
840 参照

iphone - 36時間データパケットを罵倒しています。助けてください!

OKここに問題があります。構造物などを介してアップルのBluetooth送信ネットワークパケットコードを送信しようとしています。送信するコードは以下のとおりです

}

誰かが櫛でこれを通り抜けて、何が起こっているのかを説明することができれば、それは大いにありがたいです。次に、受信コード。

}

私がObjectiveCの初心者であることを理解するのに苦労しているのは、これがどのように機能するか、ログに記録するためのすべての努力によってプログラムがクラッシュするため、送信した文字列にアクセスする方法です。

以下は、送信を開始するために使用されるコードです。

どんな助けでも大歓迎です。ありがとうございました。

0 投票する
2 に答える
815 参照

python - 可変ヘッダー サイズを持つ等しいサイズのパケットにデータを分割する方法..

Pythonでピアツーピアアプリケーションを構築しています。UDPで動作します。そのパケットのヘッダーを返す関数が呼び出さgetHeader(packetNo,totalPackets)れました。ヘッダーのサイズに応じて、データを切り刻み、データをヘッダーに添付して、同じパケットサイズを取得しています。

異なる桁数によって消費される長さが異なるため、ヘッダーのサイズは固定されていません。たとえば、packetNo=1 のヘッダーを として書いていPACKET_NO=1ます。

現在、ヘッダーにパケットを含めていません。パケット番号を含めているだけです。含めたいのですが、ヘッダー サイズを計算する前にパケット数を知るにはどうすればよいですか。ヘッダーにはパケット数が含まれていない必要があり、NO_OF_PACKETS=--- は任意の長さにすることができます。

パケット数を計算する関数に渡すことはできますが、それはブルートフォースのようなものになり、不必要な時間と処理能力を消費します。それを行うためのインテリジェントな方法はありますか?

0 投票する
1 に答える
334 参照

c++ - 新しい十分なメモリが割り当てられていませんか?

さて、私はネットワークから直接パケットを取り出し、そこから TCP ストリームを抽出しています。

簡単に言えば、これはさまざまなヘッダーを取り除くことを意味します (例: eth->IP->TCP->ストリーム データ)。

最終的にすべてのヘッダーを通過したときに呼び出される関数で、奇妙なエラーが発生しています。

TCP ストリームは、パケットのデータのコピーを指す単純なu_int32_tおよびです。u_char*そのため、memcpy を使用していたときに segfault が発生しました。
明らかに、ポインタが無効であるか、長さを台無しにしていました。

この特定のパケットの場合、データの長さは 1380 バイト (Wireshark で確認) であるため、len は正しく計算されます。

わかりましたので、ポインターを台無しにする必要があります (NULL ではありません)。次の実験を行いました。

したがって、streamData (具体的にはインデックス 1236) に逆参照しすぎると、segfault が発生します。ただし、streamData は次のようにインスタンス化されます。

i=0 で streamData の反復処理を開始するので、大量のデータをスキップすることはありません。streamData はそのままなu_char*のでoffset(pkt)u_char*型を台無しにすることはありません。

これは、3000 以上の他のパケットを正常に反復した後、特定のパケットで失敗します。ダンプ ファイルは 27 メガバイトで、4 ギガの RAM があるので、不足しているとは思いません。 ?

0 投票する
3 に答える
14140 参照

c# - C#パケットデータの取得

HTTPヘッダーをスニッフィングするスクリプトを作成しようとしています。これまでのところ、ソケットはポート80にバインドされており、パケットは受信されているように見えますが、文字列形式にすることはできません。出力されるのは「E」だけです。以前にバイトを16進数に変更しましたが、データが入っているようですが、現在のコードではバイトを文字列に変更できません。適切な文字列を与えるバイトをデコードする他の方法はありますか?