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インスタンスを複数使えばまあなんとか動くかな?動かないかも知れない。

そのうちやる。