更新时间:03-16 (乖宝宝)提供原创文章
摘 要:即时聊天软件是目前网络上最为流行的通信方式,它有着快捷、方便、信息多元化的优势,正是这样,市场上对于通信软件的研究也日趋普遍,用户也越来越依赖于它进行交流,现如今,即时通信软件已经是集聊天、语音、文件传输、游戏、电子邮件等于一体的先进软件,而实现通信软件的各种技术也层出不穷,此次,本文将采用相关技术实现一款即时通信软件.该即时通信软件的设计是采用P2P(peer-to-peer,对等网络技术)与C/S(Client/Server,服务端/客户端)相结合实现的,P2P又称点对点技术,它不依赖于服务器,可以实现完全的客户端对客户端的通信,P2P让用户通过互联网直接交互,不需要像C/S模式一样,先连接到服务器,再进行通信,P2P实现了客户端之间的直接通信.而C/S需要客户端和服务端来实现通信.本设计文字传输采用P2P模式,语音和文件传输部分采用C/S模式.
用户登陆首先需要在局域网中进行广播,编程中以java.net包中的BroadcastReceiver类来实现广播.当向广播中传入地址、内容及端口时,在这个广播地址里的在线用户都能收到这个消息,来判断其他用户是否在线.用户在局域网中,IP是它的唯一标识,但是,用户名和头像的设置也是非常重要的,可以让局域网中的用户很快识别出真正的用户.文字传输模块采用UDP(User Datagram Protocol,用户数据报协议)来实现的,通过java.net包中的MulticastSocket类和DatagramPacket类来完成编译,MulticastSocket类负责接收和发送UDP数据报,DatagramPacket类用来表示UDP数据报文, multicastSocket类事实上是DatagramSocket类的子类,multicastSocket类与DatagramPacket类搭配使用,实现文字传输功能.语音传输和文件传输均采用TCP(Transmission Control Protocol,传输控制协议)实现,运用到JDK中的ServerSocket和Socket类,ServerSocket充当服务端,Socket充当客户端,语音文件传输则采用多线程进行传输.在Java中要想实现多线程,有两种方式,一种是继承Thread类,另外一种是实现Runnable接口,而次此设计中将通过Thread方式实现.
总之,随着网络发展和科技进步,现代生活越来越信息化、网络化,即时通信系统也不仅仅限于人与人之间的交流,更是起到跨领域、跨国际的信息传输作用,即时通信系统无处不在,它已经渗透到生活的方方面面了,因此,我们也更需对其进行研究,加强通信速度,增强通信安全,提高通信服务质量,这才是大势所趋.
本文主要的技术资料有《JAVA P2P技术内幕》、《TCP/IP 网络原理与技术》、《基于 UDP 协议 P2P 通信技术的分析及实现》、《基于 Socket 的安全即时通讯软件的设计》等,其中《JAVA P2P技术内幕》详细讲解了P2P技术,让本论文的编写打好基础,《TCP/IP 网络原理与技术》和《基于 UDP 协议 P2P 通信技术的分析及实现》详细对TCP协议及UDP协议进行了分析及应用讲解,《基于 Socket 的安全即时通讯软件的设计》为本文的设计提供了不菲的参考意见.
关键词:即时通信;TCP/IP协议;UDP协议
目录
摘要
ABSTRACT
第1章 绪论-1
1.1 课题背景及发展状况-1
1.1.1 课题背景-1
1.1.2 国内外发展现状-2
1.2 本文工作及结构-2
1.2.1 研究思路及解决问题-2
1.2.2 本文组织结构-2
第2章 系统概述-5
2.1 系统框架-5
2.2 相关技术概述-6
2.2.1 基于Socket的通信模式-6
2.2.2 通信支持-8
2.3 可行性分析-8
第3章 系统功能模块的设计与实现-11
3.1 上下线功能模块-12
3.1.1 信息设置-12
3.1.2 上下线功能-12
3.2 文字传输模块-13
3.2.1 基本原理-13
3.2.2 文字传输实现-15
3.3 语音传输模块-16
3.3.1 基本原理-16
3.3.2 语音传输实现-17
3.4 文件传输模块-18
3.4.1 多线程传输-18
3.4.2 文件夹读写权限-19
3.4.3 文件传输实现-19
第4章 测试与结果分析-23
4.1 软件测试-23
4.1.1 测试环境-23
4.1.2 测试过程-23
4.2 测试结果分析-27
第5章 总结与展望-29
5.1 总结-29
5.2 展望-29
参考文献-31
致 谢-33