没有合适的资源?快使用搜索试试~ 我知道了~
基于TCP协议的简单即时通信软件的设计与实现(含源文件).docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 125 浏览量
2022-10-31
13:16:58
上传
评论
收藏 469KB DOCX 举报
温馨提示
试读
20页
。。。
资源推荐
资源详情
资源评论
基于 TCP 协议的网络通信系统的设计与实现
摘 要 :网络通信,由于其具有实时性、跨平台性、成本低、效率高等优点而受到
广泛的使用.设计并实现一个能够处理多用户进行实时、安全的即时通信系统具
有较强的现实意义。即时通信的底层通信是通过 SOCKET 套接字接口实现的。
当前的主流 UNIX 系统和微软的 WINDOWS 系统都在内核提供了对 SOCKET 字
接口的支持。使用这个统一的接口,可以编写一个可移植的 TCP/IP 通信程序。
使信息能够在 INTERNET 上可靠的传输。
本文设计并实现了基于局域网内的简单即时通信系统,系统采用 C/S 模式,
底层通信通过 SOCKET 套接字接口实现,服务器负责客户端的登录验证,好友
信息的保存和心跳报文的发送.客户端采用 P2P 方式实现消息传递,并能实现文
件的传输。本文首先讨论了同步套接字,异步套接字,多线程并发执行任务等 ;
然后阐述了客户端、服务器如何使用 XML 序列化的消息进行通信。
关键词:即时通信;文件传输;套接字;TCP 协议
Abstract
:
Instant messages have several advantages such as real-time , cross-platform, cheap a
nd efficient. To design a Multi-user IM (instant message) architecture is very importan
t in both theory and realism。 Instant message based on TCP/IP protocol that is realiz
ed by socket interface 。 Almost all UNIX operation systems and Microsoft's window
s operation systems provide support of socket in the kernel. Using the uniform interfa
ce, we can develop a portable program of TCP/IP, which help us transfer informatio
n in Internet safely and credibly。
The system uses the client/server(C/S) mode. The server takes the responsibility of t
he login message of client, the saving of friend message and Message heartbeat。 The
transmission of the basic messages of the customer end will be designed on P2P archi
tecture. This thesis explains how the client and server communicate via serializing X
ML message。
Key words: Instant Message; File Transfer; Socket; TCP protocol
第 1 页 共 20 页
引言
1。1 课题背景
即时通信是一个终端连往一个即时通信网路的服务.即时通信不同于e—mail
在于它的交谈是实时的。大部分的即时通信服务提供了 presence awareness 的特
性──显示联络人名单,联络人是否在在线与能否与联络人交谈.
最早的即时通信软件是 ICQ,ICQ 是英文中 I seek you 的谐音,意思是我找
你.四名以色列青年于 1996 年 7 月成立 Mirabilis 公司,并在 11 月份发布了最初
的 ICQ 版本,在六个月内有 85 万用户注册使用。
在 因 特 网 上 受 欢 迎 的 即 时 通 信 服 务 包 含 了 MSN Messenger 、
AOL Instant Messenger、Yahoo!Messenger、NET Messenger Service、Jabber、ICQ
与 QQ。 这些服务有赖于许多想法更久的 (与普遍)的在线聊天媒介,如
Internet Relay Chat 一样知名。
1970 年代早期,一种更早的即时通信形式是柏拉图系统(PLATO system)。
之后在1980年代,UNIX/Linux的交谈实时信息被广泛的使用于工程师与学术界,
1990 年代即时通信更跨越了因特网交流。1996 年 11 月,ICQ 是首个广泛被非
UNIX/Linux 使用者用于因特网的即时通信软件.在 ICQ 的介绍之后,同时在许多
地方有一定数量的即时通信方式发展,且各式的即时通信程序有独立的协议,无
法彼此互通。这引导使用者同时执行两个以上的即时通信软件,或者他们可以使
用支持多协议的终端软件,如 Gaim、Trillian 或 Jabber。
1。2 国内外研究现状
1.2。1 国外研究现状
当今,国际上对网络通信系统研究的较好的公司有,思科,Sun,Ms 等公司,
思科主要研究的是底层的传输;MS,Sun 公司研究的是应用层.其中 ms 公司凭借
其在操作系统的垄断地位,为了在网络的发展中取得先机,采用了各种各样的手
段。但是,其捆绑的 msn,无论从功能上,还是技术上来说,都不算是非常先进
的。当然,ie,同样也不是很受人青睐,这让人想起了,当年的网景公司,网景只
是生不逢时。MS 不择手段的想打跨网景,可见其对网络的重视.如今,Sun 公司在
网络应用上捷足先登,凭借着 Java,Sun 在网络的应用上领先于 MS。微软,想
用同样的办法搞跨对手,因此它拿出了 Visual c#,来对抗 Java.这些都是在应用
层面的开发工具.应用层上的产品就更显种类繁多。ICQ 几乎是国际上通用的即
时通信工具,由于在我国它的应用不是很广,所以 ,其原理也很少被介绍。msn,
是 MS 的产品,同样在国内没什么市场,所以,对其原理,也很少被讨论过。至
于 ie,是在 Visual c++下开发的产品,虽然有严重的安全隐患,不过,至少能在
某种程度上代表当今国际研究的水平。此外,国际上最近出先了新的浏览器
Firefox,其性能据说是远高于 ie,也许在网络的天下,Ms 又有了更强劲的对手。
1。2。2 国内研究现状
国内在应用层上的网络应用软件目前发展异常的火爆,因为我国有着网络应
用的最大的市场,现在国内网络的基础性建设发展迅速,应用软件也层出不穷,其
中,在游戏的领域中,网络通信的工作做的不错,如联众游戏平台,还有其他的
一些平台,这些平台基本上都是基于 VC++的,用的都是 Socket 通信,但是为了
效率,这些平台没有用 MFC 提供的 CSocket 类,而是直接用 Socket 进行通信.所
以效率上不错.此外,tencent 的即时通信,也是做的很好的,从某中程度上来说,
代表了国内最高的水平。
第 2 页 共 20 页
1.3 本课题的研究方法
本系统采用 C/S(Client/Server)结构进行设计,使用 SQL Server 2000 构建数
据库,并在.NET 环境下使用 Visual C#.net 语言和 SOCKET 套接字开发一个基于
TCP 协议的简单即时通信软件,实现简单的即时聊天,文件传输等功能.
2 相关技术介绍
2.1 .NET 开发平台及 C#.NET 开发语言
NET 框架是 Microsoft 公司推出的一种全新的开发平台,提供了统一的、面
向对象并且可以扩展的编程类库和完善的集成开发环境,大大简化了应用程序的
开发过程,并且具有良好的移植性和安全性。
微软为了推行。NET 战略,特别为.NET 平台设计了一种语言-—C#。C#是
由 C 和 C++派生而来的一种“简单、流行、面向对象、类型安全”的程序设计
语言,其综合了Visual basic 的高效率和 C++的强大功能,然而更多的人感觉 C#
更类似 J AVA。
2.2 TCP 协议
2。2.1 TCP/IP 网络协议
协议是对等的网络实体之间通信的规则,可以简单地理解为网络上各计算机
彼此交流的一种“语言”.网络通信协议设计的基本原则是层次化,层和协议的
集合被称为网络体系结构。相邻层之间的接口定义了下层向上层提供的基本操作
和服务,下层向上层提供的服务分两种形式:面向连接的服务和无连接的服务。
计算机网络中已经形成的网络体系结构主要有两个:OSI 参考模型和 TCP/IP
参考模型。TCP/IP 参考模型是因特网(Internet)的基础。和 OSI 的 7 层协议相比,
TCP/IP 协议只有 4 个层次。通常说的 TCP/IP 是一组协议的总称,TCP/IP 实际上
是一个协议族,包括 100 多个相互关联的协议,其中 IP(Internet Protocol, 网际
协议)是网络层最主要的协议;TCP(Transmission Control Protocol,传输控制协
议)和 UDP(User Datagram Protocol,用户数据报协议是传输层中最主要的协议),
一般认为 IP、TCP、UDP 是最根本的三种协议,是其他协议的基础.
2。2.2 TCP——传输控制协议 :面向连接的通信可以使用可靠通信,在这时候,第
四层协议发送数据接收方的确认 ,如果未收到数据或者数据被损坏,则请求重新
传输。TCP 协议就使用这种可靠通信。使用 TCP 协议的应用层协议包括 HTTP、
FTP、SMTP 和 Telnet 等。
现在可以发送和接收消息了。接收消息后,总是返回 ACK 消息.如果在收到
ACK 之前发送方已经超时,则消息将被放到重发队列中以再次发送。
由于它的握手机制,所以TCP 协议比较复杂并且费时,但此协议在处理数据
时对数据包的传送有保障,从而使得在应用程序协议中不需要再包括该功能。
2.3 套接字
套接字这个术语并没有定义某个协议:它具有两层含义,但两者都与一个协
议相关。第一个含义是套接字编程 API,它最初由伯克利大学为 BSD UNIX 而创
建。BSD 套接字在经过修改后被用作 Windows 环境的编程接口(并且被命名为
WinSock)。WinSock API 被包装在 System。Net.sockets 命名空间的。NET 类
中.Windows Sockets 是一个独立于协议的编程接口,用于编写网络应用程序。
2。4 流
2.4.1 流的基本概念
流的概念已经存在很长时间了。流是一个用于传输数据的对象 .数据的传输
有两个方向:
第 3 页 共 20 页
第 4 页 共 20 页
剩余19页未读,继续阅读
资源评论
春哥111
- 粉丝: 1w+
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 华为云会议安装包适配华为擎云L410 -1060 ARM架构
- 清空redis缓存脚本指令
- STM8S微控制器-寄存器操作指南
- apk一键安装,获取apk签名信息
- opencv4.8.0+contrib+cuda文件
- 【全网最新最全】大气公司年度月度总结汇报PPT
- C语言实现低功耗STM32F411开发板(原理图+PCB源文件+官方例程+驱动等).zip
- C语言实现基于STM32 的联合调试侦听设备解决方案(原理图、PCB源文件、调试工具、视频).zip
- 【全网最全最酷】部门年度年终工作总结汇报PPT模板
- C语言实现基于STM32F103RC的电子相册(原理图、PCB源文件、程序源码及制作).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功