摘 要
即时通信(Instant Message),由于其具有实时性、跨平台性、成本低、效率高等优点而受到广泛的使用。设计并实现一个能够处理多用户进行实时、安全的即时通信系统具有较强的现实意义。即时通信的底层通信是通过SOCKET套接字接口实现的。当前的主流UNIX系统和微软的WINDOWS系统都在内核提供了对SOCKET字接口的支持。使用这个统一的接口,可以编写一个可移植的TCP/IP通信程序。使信息能够在INTERNET上可靠的传输。
本文设计并实现了基于局域网内的简单即时通信系统,系统采用C/S模式,底层通信通过SOCKET套接字接口实现,服务器负责客户端的登录验证,好友信息的保存和心跳报文的发送。客户端采用P2P方式实现消息传递,并能实现文件的传输。本文首先讨论了同步套接字,异步套接字,多线程并发执行任务等;然后阐述了客户端、服务器如何使用XML序列化的消息进行通信。
关键词:即时通信;文件传输;套接字;TCP协议
目 录
论文总页数:28页
1 引言 1
1.1 课题背景 1
1.2 国内外研究现状 1
1.2.1 国外研究现状 1
1.2.2 国内研究现状 2
1.3 本课题研究的意义 2
1.4 本课题的研究方法 2
2 相关技术介绍 2
2.1 .NET开发平台及C#.NET开发语言 2
2.2 TCP协议 3
2.2.1 TCP/IP网络协议 3
2.2.2 TCP——传输控制协议 3
2.3 套接字 4
2.4 流 4
2.4.1 流的基本概念 4
2.4.2 .NET中的流 4
2.5 同步、异步、阻塞和非阻塞 5
2.6 C/S模型 5
2.7 即时通信协议 6
3 系统总体设计 7
3.1 需求分析 7
3.2 系统基本架构 7
3.3 功能模块设计 7
3.4 逻辑图 9
3.5 数据库设计 10
3.5.1 实体关系图 10
3.5.2 详细列表 10
4 系统实现 11
4.1 使用XML定义的即时通信协议 11
4.1.1 信息结构MESSAGE.CS&UMESSAGE.CS 11
4.1.2 数据结构FriendStruct 12
4.2 数据库连接类 14
4.3 服务器端 15
4.3.1 同步套接字网络监听 15
4.3.2 多线程 19
4.3.3 计时器 19
4.4 客户端 20
4.4.1 同步套接字客户端 20
4.4.2 采用异步套接字的文件传输 23
结 论 25
参考文献 26
致 谢 27
声 明 28