2007年6月26日 星期二

用Java寫一個MSN Client

昨天的網路程式設計本來要交期末project,可是我自己找喳,沒事用什麼Java來寫,所以到昨天為止都只有prototype而已,而且只能用telnet去連線,功能只有唯二的兩種,就是登入、傳訊息 = =,所以最後只好補交,期限是在下星期三之前。

本來我是有自己寫一個GUI的client,可是測試一直不成功,找了兩三天的bug一直找不出來,今天就想說拿出絕招,sudo apt-get install ethereal,直接灌上ethereal(或稱wireshark),抓看看封包到底是哪裡有問題。

結果我看了封包才知道,這幾天在找的bug實在是有點丁丁化,原來是因為telnet在傳訊息的時候會自動加上換行符號(\r\n),可是我自己寫的GUI介面在傳送訊息的時候卻不會把換行加上去,卡在這麼蠢的問題上面兩三天,實在是有點囧。

到了剛剛我突然想到自己寫一個IM多蠢,而且說不定這個IM的protocol也不夠完善,所以為什麼不利用現有的IM來連線就好了呢?像是MSN, AOL之類的,然後我就去找了一個叫做JML。JML是一個可以拿來連MSN的package,只要import就可以使用了,而且還有很多的tutorial耶,這樣我就不用花時間自己寫server了,直接用MSN protocol就可以完成我需要的這些東西啦。

只不過不曉得老師會不會同意我這種寫法耶,因為我現在已經不是把這個程式當成是一個課堂的期末project,而是當成以後要持續maintain的一個project,反正不管了啦,我就是要寫這個軟體了!

參考資料:
最近想要開發的即時通訊軟體
Ethereal - Wikipedia
Java MSN Messenger Library

2 則留言:

jck11 提到...

Etheral有安裝過,但是看到那麼多功能就不會用了,還裝過tcpdump,sinffer pro等,但都從來沒用過,裝好玩而以,哈哈。

版主回覆:(06/26/2007 12:27:15 AM)


我反而覺得sniffer超難用,還是ethereal比較直觀。

lukeshei 提到...

3分鐘學會使用程式發送msn訊息,php篇(一)
http://rd-program.blogspot.com/2008/11/5msnphp.html

3分鐘學會使用程式發送msn訊息,dotNet C#篇(二)
http://rd-program.blogspot.com/2008/11/3msn-net-c.html

3分鐘學會使用程式發送msn訊息, Java篇(三)
http://rd-program.blogspot.com/2008/11/3msn-java.html

版主回覆:(06/28/2007 01:26:12 AM)


很實用的文章耶,有機會的話我也來implement看看。

謝啦!