计算机网络实验小项目:即时通讯软件
之前计算机网络实验课有个小项目,放到Github了,今天偶然看到感觉还是往博客搬运下。
具体来说就是一个可以多人即时通讯、传文件的桌面端软件以及对应的服务器端软件,客户端的GUI是用Java FX写的(GUI没太多时间美化,只能说功能上没问题),用到的主要技术是Java socket.其还实现了双侧NAT穿透(主要是靠发心跳包。之前写过一篇关于NAT穿透的文章,但是貌似想看这个文章需要登录才能看,感觉很迷:https://www.cnblogs.com/jiading/p/12029450.html )。
这个软件从技术上不太难,但是自己设计数据包信息格式、在服务器端对数据包进行转发的过程还是挺有意思的。整体架构在很多地方都使用了多线程的思想,服务器端部分临界资源也用了cocurrent包下的一些类。
基于传文件的功能还可以实现一些有意思的拓展,比如传语音啊视频啊(但是如果是实时的话,对服务器带宽要求还是不低的),这些功能加上也很方便,用opencv等等包很容易实现。
代码详见Github:https://github.com/JiaDingCN/QQ
限于个人水平,肯定会有问题,发现了问题欢迎告诉我,thanks~
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步