基于tcp/ip网络通信的实现
摘 要
如今随着计算机网络的不断发展,生活和工作环境的不断变化,以网络为重心的信息服务和通信服务受到各行各业的重视。而在当今各种聊天工具竟然日趋激烈的时代,在服务,技术等各个环节都做到更好的同时,如何把现代的网络应用技术与通信技术结合起来,让世界各地的人方便交流。
本课题的最终目的是基于Qt的TCP/IP协议的进行客户端和服务端之间进行聊天。本文中就该系统的设计思想、实现方法以及所采用的技术进行了系统的阐述,本文分为以下几个部分:
前言部分概括客户端和服务端之间通信的意义。
第一章介绍了课题实现的可行性研究 。
第二章介绍了客户端和服务端具体通信的过程。
第三章是本文的核心部分,着重介绍和总结了本系统的实现思想、方法以及具体实现方案;
第四章对本聊天软件进行了总结和展望;
关键词:QT、tcp SOCKET、客户端 服务端
第一章 客户端与服务端通信的可行性
1.1 课题的研究目标
本课题的最终目的是通过Qt Creator开发工具设计客户端和服务端的界面,进一步让客户端和服务端之间进行通信。
1.2 设计思路的分析和可行性
本如软件采用服务器和客户端的形式。服务器负责监听客户端和接收客户端发送过来的信息,并在显示在界面上。客户端则向服务端发送信息,在本地呈现的同时,通过网络实时发往服务器。用户在服务器器上也可以看见客户端发送的消息,并获取最新客户端发送的消息。
网络编程技术的成熟和界面设计技术使得客户端与服务端通信的设计成为可能,而且此软件同过设置IP是聊天通信更为方便。
1.3 开发环境和开发技术的选用
我们选用的开发环境是Qt Creator开发工具,Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程式,也可用于开发非GUI程式,比如控制台工具和服务器。Qt是面向对象语言,易于扩展,并且允许组件编程。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。本质上来说, Qt是一个跨平台的C++应用程序开发框架,有时又被称为C++部件工具箱。Qt被用在KDE桌面环境、Opera、Google Earth、Skype、Adobe Photoshop Album和VirtualBox的开发中。它是诺基亚(Nokia)的Qt Development works 部门的产品。使用 Qt ,只需一次性开发应用程序和用户界面,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应用程序。
基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的
MFC,OWL,VCL,ATL 是同类型的东西,但是 Qt 具有下列优点: a) 优良的跨平台特性: Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。 b) 面向对象 Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。 c) 丰富的 API Qt 包括多达 250 个以上的 C++ 类,还替供基于模板的 collections, serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理 功能。 d) 支持 2D/3D 图形渲染,支持 OpenGL e) 大量的开发文档 f) XML 支持
第二章 基于TCP/IP协议通信的概念
2.1 tcp协议
(1)TCP协议是一个基于流的协议。在TCP之上建立的高层协议通常是基于行或者基于块
的
(2)基于行的协议把数据作为一行文本进行传输,每一数据行都以一个换行符结束
(3)基于块的协议把数据作为二进制块进行传输。每一数据块都是由一个大小字段及其包含的数据组成
2.2 设计的实现
(1)Qt中的TCP通信采用的是客户端/服务器模式
(2)QTcpSocket和QTcpServer类可以用来实现TCP服务器
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论