Org.Shokai.Skype.SkypeAPIControlFormが結構というか前に公開した奴でだいたい良いかなと思ったので、
Org.Shokai.Skype.A2A.Applicationの実装。
これ使うとそこそこ簡単に、SkypeA2AというSkype上のP2PフレームワークがC#で使えるよ、というラッパーです。
クラスが結構できてきたけど説明がめんどいので、とりあえずzipでおいとく
→ Source Code & exe (Visual Studio2005 C#.NET)
Form1.csを見ればわかると思うが一応自分のためにもメモ。
まずSkypeAPIとのやりとりするFormを作ろう。Show()しなければ非表示にできる。
usingOrg.Shokai.Skype;
SkypeAPIControlFormskypeControl;
skypeControl=newSkypeAPIControlForm();
skypeControl.Show();
A2A上で認識されるアプリケーションを作る。コンストラクタでさっきのSkypeAPIControlFormのインスタンスを渡してやる必要がある。多分ユニークな名前にしなければならないので注意。
Org.Shokai.Skype.A2A.Applicationa2a;
a2a=newOrg.Shokai.Skype.A2A.Application(skypeControl,”AppName”);
ここまでは、ネットワークに参加する全員が行わなければならない儀式。
相手のSkypeユーザ名を指定して接続。これはどちらからでも良い。
a2a.Connect(“shohashimoto”);
データの送信。StringでTCPみたいなのが送れる。
a2a.Send(“hello!!!”);
データの受信。関数を宣言しておいて、コールバックに追加してあげてください。
publicvoidonRecvData(Stringmessage){
Console.WriteLine(message);
}
a2a.onReceive+=onRecvData;
とりあえずチャットみたいな用途には使えるけど、まだまだ作りかけ。とりあえず1アプリケーション1Stream1ユーザに限定して使いやすいように実装してみた。
複数コネクションを張るにはOrg.Shokai.Skype.A2A.Applicationインスタンスを複数使えばまあなんとか動くかな?動かないかも知れない。
そのうちやる。