« ACバッジ | メイン | C#教える順番のメモ »

2007年07月12日

SkypeA2Aラッパー メモ [Programming&Electronics][Technology]

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()しなければ非表示にできる。

using Org.Shokai.Skype;
SkypeAPIControlForm skypeControl;
skypeControl = new SkypeAPIControlForm();
skypeControl.Show();

A2A上で認識されるアプリケーションを作る。コンストラクタでさっきのSkypeAPIControlFormのインスタンスを渡してやる必要がある。多分ユニークな名前にしなければならないので注意。

Org.Shokai.Skype.A2A.Application a2a;
a2a = new Org.Shokai.Skype.A2A.Application(skypeControl, "AppName");

ここまでは、ネットワークに参加する全員が行わなければならない儀式。

相手のSkypeユーザ名を指定して接続。これはどちらからでも良い。

a2a.Connect("shohashimoto");

データの送信。StringでTCPみたいなのが送れる。

a2a.Send("hello!!!");

データの受信。関数を宣言しておいて、コールバックに追加してあげてください。

public void onRecvData(String message){
  Console.WriteLine(message);
}
a2a.onReceive += onRecvData;

とりあえずチャットみたいな用途には使えるけど、まだまだ作りかけ。とりあえず1アプリケーション1Stream1ユーザに限定して使いやすいように実装してみた。
複数コネクションを張るにはOrg.Shokai.Skype.A2A.Applicationインスタンスを複数使えばまあなんとか動くかな?動かないかも知れない。
そのうちやる。

投稿者 sho : 2007年07月12日 02:43

トラックバック

このエントリーのトラックバックURL:
http://web.sfc.keio.ac.jp/~shokai/cgi-bin/mt/mt-tb.cgi/1460

コメント

コメントしてください




保存しますか?