最近讓新來的實習生寫訂餐機器人,羽毛球活動預定機器人,兩個人寫了幾個星期,看得我心急火燎。現在的研究生啊。。。。
自己拿來skype4java看了一下,感覺很好用。里面提供了一個application機制,類似socket,又強于socket。為什么說強呢?因為是基于skype, 穿透防火墻啦。
windows自帶的遠程桌面很好用,在速度上,比以前基于位圖傳送的netmeeting/pcanywhere之類的都要強。
linux下面的遠程桌面做的比較好的是nx系列。但是這些遠程桌面的致命問題就是網關、防火墻問題。
就是說你要在家訪問公司電腦,基本上要在防火墻上鑿洞,或者借助于vpn,softether之類的東東。
skype的application利用skype自身的通訊機制,屏蔽了這些問題,當然,你的應用也必須依賴skype了。
java做遠程桌面要能截屏、控制鼠標鍵盤,所幸有java.awt.Robot, 原來這個東西是為了做自動化測試,剛好。
剩下就是穿數據的問題。屏幕圖片,如果是bmp,比較碩大,即使是上網等文本界面,壓縮下來也要幾十k, 如果網絡帶寬不夠的話,比如公司有幾個下載愛好者,會比較慘。所以呢,決定傳差異,緩存前面的屏幕,看看如果差別不大,就只傳變化的部分。這樣數據量就比較小。但是呢,壓縮圖片的時候就不能采用有損壓縮啦,否則屏幕會變得越來越怪異。。。
比較遺憾的是沒能象windows自帶的rdp那樣攔截繪圖操作,在點陣圖的方案上效率還是比較低的。希望有高手指點!
skype4java是個日本人寫的,幾個聽了我介紹的朋友都有這疑問:日本人寫的?
呵呵,如果你能寫出更好的,咱就不用它。那個日本作者還不錯,上班比較忙,還是答應抽空fix幾個bug,感謝中~
體驗一下吧:
skypeRDP