mones2/06.9.WinPcap抽象化


Top / mones2 / 06.9.WinPcap抽象化

これは何か

WinPcapの送受信を抽象化します。

成果物

抽象化

Monaのネットワーク実装に、なぜWinPcapが関係あるのか?と思われた方もいるかもしれません。
 
がんばってWinPcapの使い方を学んだのには理由があります。
 
それは、Mona用のプロトコルスタックの開発のほとんどをWindows上で行ってしまおうという意図があるからです。
 
そこで必要なのがWinPcapなのです。
 
でもWinPcapは、Monaで使えないよ?という疑問はもっともです。
 
MonaにはWinPcapはありませんが、代わりにid:Yamamiさんが開発されたドライバがあります。
 
では、もしもWinPcapとMona上のドライバが同じインターフェースで使えたらどうなるでしょうか?
 
そう、プロトコルスタックはNICドライバがWindows上で動いている(WinPcap)か、Mona上で動いているか知らなくて良いことになります。
 
このように同一のインターフェースを提供することで、Monaコンポーネントの開発をWindows上でほとんど行うことは、これが初めてではなく、実はファイルシステムの実装のときに散々行っています。
 
というわけで、こんなクラスを作ってみました。
 
手元ではばっちり動いています。
Nicクラス
 
public:
 
virtual int Open() = 0;
 
virtual int Close() = 0;
 
virtual int Read(void* buffer, int size) = 0;
 
virtual int Write(const void* buffer, int size) = 0;
 
};
WinPcapNicクラス
 
class WinPcapNic : public Nic
 
{
 
public:
 
WinPcapNic();
 
virtual ~WinPcapNic();
 
int Open();
 
int Close();
 
int Read(void* buffer, int size);
 
int Write(const void* buffer, int size);
 
protected:
 
pcap_t* handle;
 
};
 

コメント

コメントはありません。 コメント/mones2/06.9.WinPcap抽象化?

お名前:

MENU

now: 3

リンク


最新の20件
2018-10-07 2018-09-20 2018-09-03 2018-05-09 2017-09-29 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-05-29 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 4179, today: 1, yesterday: 0

添付ファイル: fileprotocol-20051211.zip 569件 [詳細]

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:48:00 (3857d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.022 sec.