計算機網絡實驗小項目:即時通信軟件

以前計算機網絡實驗課有個小項目,放到Github了,今天偶然看到感受仍是往博客搬運下。html

具體來講就是一個能夠多人即時通信、傳文件的桌面端軟件以及對應的服務器端軟件,客戶端的GUI是用Java FX寫的(GUI沒太多時間美化,只能說功能上沒問題),用到的主要技術是Java socket.其還實現了雙側NAT穿透(主要是靠發心跳包。以前寫過一篇關於NAT穿透的文章,可是貌似想看這個文章須要登陸才能看,感受很迷:http://www.javashuo.com/article/p-ybqceodt-kt.html )。git

這個軟件從技術上不太難,可是本身設計數據包信息格式、在服務器端對數據包進行轉發的過程仍是挺有意思的。總體架構在不少地方都使用了多線程的思想,服務器端部分臨界資源也用了cocurrent包下的一些類。github

基於傳文件的功能還能夠實現一些有意思的拓展,好比傳語音啊視頻啊(可是若是是實時的話,對服務器帶寬要求仍是不低的),這些功能加上也很方便,用opencv等等包很容易實現。服務器

代碼詳見Github:https://github.com/JiaDingCN/QQ
限於我的水平,確定會有問題,發現了問題歡迎告訴我,thanks~網絡

相關文章
相關標籤/搜索