0

私はデバイスを持っています。それぞれがランダムな時間に特定のポートを介して(サーバーのIPアドレス)にデータを送信します。これは警報装置であり、複数の装置が同時に発火する可能性があるためです。データはXML形式です。

今、私はすでにデータをリッスンする小さなWindowsアプリケーションを手に入れましたが、いくつかの問題がありました

  1. 問題は、アプリケーションがパケットをスニッフィングしていることです。TCPパケットでデータを取得できることを意味します....つまり、XMLをパケットに分割し、順番に(時間順に)取得しないことを意味します...これにより、XMLデータの読み取りが非常に困難になりますまたは整理して読んでください。デバイスからのデータを読み取り、XML形式で保存する必要があります。1つのデバイスを聴いている場合でも、パケットが順番に届かない

それを行う方法についてのアイデア。私はここで他のいくつかの質問を見ました、そして私はこのすべての答えを試しましたが、XMLファイルを読むことについては何も話していませんでした。この記事と同じコードを使用しています

http://www.codeproject.com/KB/IP/CSNetworkSniffer.aspx

4

1 に答える 1

1

ネットワークドライバを通過するRAWパケットをスニッフィングしています。この低レベルでは、パケットを分析し、TCP seq、ack / nakメッセージなどを使用して、メッセージを処理および再構築するのはあなた次第です。

これは、TCPプロトコルに関するウィキペディアの記事であり、物事のより深い側面を掘り下げる前に始めるのに役立つ可能性があります。 http://en.wikipedia.org/wiki/Transmission_Control_Protocol

そしてもちろん、RFCの最も重要な情報源です。 https://www.rfc-editor.org/rfc/rfc793

実際にサーバーとして機能し、データをリッスンしている他のアプリケーションがあるため、データをスニッフィングしていると思います。今なら、TCPポートでリッスンし、そこからデータを読み取るアプリケーションを作成する必要があります。このようにして、TCPプロトコルは、すべてのデータを正しい順序で受信することを保証します。これを開始するには、TcpListenerクラスを使用するか、下位レベルのSocketクラスを使用します。

于 2010-08-08T07:25:38.970 に答える