IPメッセンジャーを自作してみたいと思っています。

言語はVisual Basic 2005 Express Editionを使うつもりです。
LAN内にいるPCを探すところからして見当がつきません。
参考になるソースを公開しているURL、もしくはおおよそのステップを教えてください。

回答の条件
  • 1人2回まで
  • 登録:2007/07/07 23:55:21
  • 終了:2007/07/13 18:52:18

ベストアンサー

id:cx20 No.2

cx20回答回数603ベストアンサー獲得回数1072007/07/08 23:30:05

ポイント100pt

VB6 から「IP Messenger」にメッセージを送るサンプルがありました。


■ 「IP Messenger」互換通信サンプル1(VB)

http://www.comel.or.jp/~akira/soft/msg_s1/msg_s1.html


通信部分は、

・UDP で 2425 番ポートを使用
・コマンド書式は「Ver(1):Packet番号:自User名:自Host名:Command番号:追加部」の形式

というあたりがポイントのようです。

サンプルのソースコードは結構短いので(数百行程度)、読むのはそんなに苦にならないと思います。


IP Messenger がホスト一覧を取得する方法は、

1. 起動時に、IPMSG_BR_ENTRY コマンドをブロードキャストし、すでに立ち上がっているメンバに、新規参加を通知。
2. このブロードキャストにより、すでに立ち上がっているメンバは、自分の送信先リストに新規参加メンバの情報を追加。
3. IPMSG_ANSENTRY コマンドを新規参加メンバに対し、返信。
4. 新規参加メンバは、この IPMSG_ANSENTRY を受信することにより、すでに立ち上がっている全メンバの情報を取得。
(詳細は、ipmsg206src.lzh 内の PROTOCOL.TXT を参照のこと)

と、なっているようです。


<参考情報>

■ IP Messenger プロトコルメモ

http://smart-pda.net/isourou/ipmsg/doc/ipmsg_protocol.html

■ UDPによりデータの送受信を行う: .NET Tips: C#, VB.NET, Visual Studio

http://dobon.net/vb/dotnet/internet/udpclient.html

id:memo77

なるほどー。UDPを使うのがミソということですね。

問題はブロードキャストだけど、これは192.168.255.255とかで投げちゃうっていう解釈でいいんでしょうか。

ブロードキャストで調べたんですが、まだピンときてません。

2007/07/08 23:56:01

その他の回答(1件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402007/07/08 00:02:12

ポイント28pt

IP Messenger 開発研究室

IP Messenger ってそもそもソース公開されていると思うんですが、これでは不足でしょうか?

id:memo77

ああ・・・コメント書き忘れた私が馬鹿ですね。

C#ならなんとか読めるし参考にもなると思うんですが、.netだとその元ソースよりもラクできるんじゃないかと思ってるんです(^-^;

.net Remotingは使えてるので、相手先の列挙とかそのあたりが一番知りたいですね。

2007/07/08 00:06:27
id:cx20 No.2

cx20回答回数603ベストアンサー獲得回数1072007/07/08 23:30:05ここでベストアンサー

ポイント100pt

VB6 から「IP Messenger」にメッセージを送るサンプルがありました。


■ 「IP Messenger」互換通信サンプル1(VB)

http://www.comel.or.jp/~akira/soft/msg_s1/msg_s1.html


通信部分は、

・UDP で 2425 番ポートを使用
・コマンド書式は「Ver(1):Packet番号:自User名:自Host名:Command番号:追加部」の形式

というあたりがポイントのようです。

サンプルのソースコードは結構短いので(数百行程度)、読むのはそんなに苦にならないと思います。


IP Messenger がホスト一覧を取得する方法は、

1. 起動時に、IPMSG_BR_ENTRY コマンドをブロードキャストし、すでに立ち上がっているメンバに、新規参加を通知。
2. このブロードキャストにより、すでに立ち上がっているメンバは、自分の送信先リストに新規参加メンバの情報を追加。
3. IPMSG_ANSENTRY コマンドを新規参加メンバに対し、返信。
4. 新規参加メンバは、この IPMSG_ANSENTRY を受信することにより、すでに立ち上がっている全メンバの情報を取得。
(詳細は、ipmsg206src.lzh 内の PROTOCOL.TXT を参照のこと)

と、なっているようです。


<参考情報>

■ IP Messenger プロトコルメモ

http://smart-pda.net/isourou/ipmsg/doc/ipmsg_protocol.html

■ UDPによりデータの送受信を行う: .NET Tips: C#, VB.NET, Visual Studio

http://dobon.net/vb/dotnet/internet/udpclient.html

id:memo77

なるほどー。UDPを使うのがミソということですね。

問題はブロードキャストだけど、これは192.168.255.255とかで投げちゃうっていう解釈でいいんでしょうか。

ブロードキャストで調べたんですが、まだピンときてません。

2007/07/08 23:56:01
  • id:memo77
    書き忘れていました。
    http://www.ipmsg.org/
    のソースはダウンロード済みです。

    ただCの環境を構築したり中を読み解くのはちょっと骨だな、と思ってます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません