1

イーサネット接続を介してリモート マシンにデータを書き込むために、簡単で汚いアプリケーションを作成する必要があります。リモートマシンはデータを待っています。接続や帯域幅などをテストするためにデータをブラットしたいだけです.

たとえば、接続を介してデータの既知のパターン (単純なカウントまたは繰り返しパターン) を送信し、帯域幅を x2、x10、x100 などで増加できるようにしたいと考えています。

ハンドシェイク、CRC、特定のデータ形式、フレーミングなどは必要ありません。単純な古いデータだけです。

お願いします... サードパーティのライブラリは使用せず、C++ (または C、または python) のみを使用してください

4

6 に答える 6

5

netcatを使用できる場合:

echo "BEEFCAKE" | nc remote.host port
于 2009-02-18T15:53:32.743 に答える
3

Beej's Guide to Network Programming をお勧めします。ネットワークの巨大なジャンボすべてを理解するのに役立ちました。

ただし、本当に手っ取り早いものが必要な場合は、.NET を使用しない手はありません。これには、このようなことを行うための非常に優れたクラスがあります。データは 10 行で記述できます。

PSこれが *nix 向けに書かれているという事実に惑わされないでください。Winsock にはまったく同じ機能があります。

于 2009-02-18T15:20:23.820 に答える
1

「IP:Port」と言うときは、単なるイーサネット フレームよりも上位の層が必要であることを意味しているに違いありません。TCP/UDP/IP プログラミングについてよく読んでください。これに関するオンラインの最良のリソースは、 Beej's Guideだと思います。. これは、berkeley または Windows ソケットを対象としています。

Python ソケットのチュートリアルはこちら.

または、Google を使用して「[言語] でのソケット プログラミング」を検索してください。

于 2009-02-18T15:20:44.537 に答える
0

このチュートリアルはあなたが望むものをカバーしているようです:

http://www.amk.ca/python/howto/sockets/

于 2009-02-18T15:24:57.820 に答える
0

受信者がすべてのデータを受け入れることができるかどうかに関係なく、テスト目的でリンクを飽和できるようにしたいようです。したがって、TCP は確認応答され、レシーバーのオーバーランを避けるためにフロー制御されるため、TCP を使用したくないでしょう。

おそらく UDP を使用するのが最も簡単ですが、イーサネット フレームを直接書き込みたい場合 (つまり、IP/UDP ヘッダーなしで生のイーサネット フレームだけでデータを送信する必要がある場合) は、生のソケットを検討することもできます。適切な場所に送信されるようにイーサネット フレームに入れる宛先 MAC アドレス)。

フレーミングと CRC について: イーサネット ハードウェアがパケットをフレーミングし、CRC を生成/チェックします。

編集:達成しようとしていることを述べていただければ助かります。イーサネット リンク/スイッチの速度をテストするためですか、それとも送信側と受信側の CPU がデータを交換できる速度を確認するためですか? (受信側の CPU が処理できる速度よりも高速にイーサネット経由でデータを送信できる可能性がありますが、これはイーサネットと CPU の速度、CPU が実行している OS の種類、CPU のビジー度、ネットワークの状態によって異なります。スタックが調整されているなど)。

于 2009-02-18T15:44:58.147 に答える
0

ソケットを使用できます。

ここにいくつかの基本的なチュートリアルがあります。

于 2009-02-18T15:19:25.900 に答える