5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

MSNメッセンジャーのクライアント作った人いる?

1 :デフォルトの名無しさん:01/11/19 16:20
MSNメッセンジャーのプロトコルおよびAPIが公開されてるので、オリジナルの
クライアントを作ってみませんか?
たとえば次のような機能を備えていると便利かと思われます。

  ・ 話しかけられたら、クライアントが自動的に会話をする。
  ・ メールが届いたら勝手に返信する。
  ・ ときどきランダムでオンラインメンバーに話しかけたりする。


開発言語: C++ | Visual Basic | Java

57 :51だが:01/11/30 02:24
おおっ!
>>52 >>53 >>54
すばらしい!そこが作れれば、あとメッセージ送るのは簡単だよ。
45が訳してくれたのを見ながら送るべし。みんながんばれ!

さらにアドバイス:

telnetで叩くときは、MSGの第3パラメータ「バイト長」を
いちいち計算するのが面倒。あらかじめどっかでMSGリクエストを
メッセージ本体とあわせて作っておくのがお勧め。

というわけで以下にサンプル。多分このまま使える。
(telnetでは試してないが・・・これでできたら誰か報告してね)
hogeの後のCRLFも含めて68バイトだから注意してね。

MSG 100 A 68
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8

hoge


さらに注意点:実際にプログラムで送信するときは、
C: MSG TrID [U | N | A] Length\r\nMessage
ていう送信データの末尾に注意。CRLFは「必要ない」。(MSGコマンドだけ)

たとえばCHGなら、
"CHG 7 NLN\r\n"
というデータを送信する。コマンドの終わりをCRLFで示す。

だが、MSGコマンドで送るデータの長さを指定しているので、
CRLFに続くデータは、ちょうど「バイト長」の長さだけ送ればよい。
CRLFは不要。次はどちらも正しいMSGコマンド(とメッセージデータ)。
"MSG 100 A 68\r\nMIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8\r\nhoge\r\n"
"MSG 100 A 66\r\nMIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8\r\nhoge"

ただし、telnetだとtelnet自身のバッファリングがあるから、
CRLFを最後に入れたデータじゃないと送信できないんだよね。
だから2通り書いておいた。

58 :51だが:01/11/30 03:06
>>53
> 次にクライアントはuseridをサーバに送る。
> (省略)
> とかやってるうちにサーバからは「逝ってよし」命令がくる。こんな風に。
>
> >>>>>> XFR 2 NS 64.4.13.55:1863 0
> (XFR trial_id NS 行き先)
>
> オマエモナーなどおと返す必要もなく素直に逝かなきゃならなん。NS は Notification Server の意味。
> で、64.4.13.55:1863 が行き先。アドレスとポートだ。わかるよな。(最後の 0 ってなんだ?)

とあるが、最後の0など送られて来ないよ。
仕様書のほうにも記述が無いし。
venkydude.comの文章が間違っていると思われ。

59 :51だが:01/11/30 03:09
3連続でごめん。
仕様書によると、TrIDはtrial idではなく、TransactionIDのようだ。
"MSN Messenger Service 1.0 Protocol" 5.6 Transaction Identifiers

175 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)