基于socket的网络通讯服务器程序设计毕业论文
2021-04-17 23:39:42
摘 要
在现在的社会环境里,绝大多数人都会接触到网络通讯软件,它改变了我们的生活方式也成为了我们生活的一部分。国内外存在着各式各样的网络通讯软件,虽然它们之间或多或少存在一些差异,但是它们的基本原理都是相同的,所有这些都基于服务器和客户端之间的通信。而在我的毕业设计中,我将会通过资料查阅分析并深入了解网络通信服务器程序的组成和实现原理,了解在 Linux系统和 TCP/ IP协议内容下使用网络套接字,并在此基础上构建一个并发通信服务器。服务器要求并发运行,实现同客户端之间的信息交流以及实时对客户端的状态进行监控,合理安排资源。
关键词:套接字;服务器;客户端
Abstract
In the current social environment, the vast majority of people are exposed to network communication software. It has changed our way of life and has become part of our lives. There are various kinds of network communication software at home and abroad. There are more or less differences, but their basic principles are the same, all based on communication between the server and the client. In my graduation project, I will analyze and understand the composition and implementation principle of the network communication server program through information analysis, and understand the use of network sockets under the Linux system and TCP/IP protocol content, and on this basis Build a concurrent communication server. The server requires concurrent operation to implement information exchange with the client and monitor the status of the client in real time, and reasonably arrange resources.
Key words:socket;serve;client
目录
第1章 引言 1
1.1 网络通讯软件产生的背景 1
1.2 开发网络通讯系统的意义 1
1.3设计思路 2
第2章 开发环境 3
2.1 C语言 3
2.1.1 C语言基本特性 3
2.1.2 C语言优点 3
2.2 Linux系统介绍 4
2.3 TCP/IP协议 4
2.3.1 TCP/IP协议简介 4
2.3.2 ISO/OSI 的七层参考模型 5
2.3.3 TCP三次握手 7
第3章 编程技术应用 9
3.1 socket套接字 9
3.1.1 常用的TCP/IP协议套接字类型 9
3.1.2 套接字基本函数 9
3.2 C语言结构体 11
3.3 进程 11
3.4 Linux共享内存 13
3.5 sqlite3数据库应用 13
第4章 运行程序解析 15
4.1 服务器与客户端运行流程 15
4.2 主程序 15
4.3 注册模块 19
4.4 登陆模块 20
4.5 交流模式 22
4.6 消息记录模式 25
第5章 经济性与环保性分析 27
5.1经济性分析 27
5.2环保性分析 27
第6章 毕设总结 28
6.1 遇到的问题与解决方法 28
6.2 毕设感悟 29
参考文献 30
致 谢 31
第1章 引言
1.1 网络通讯软件产生的背景
网络通讯系统是通过通讯网络提供的一种交流的系统服务,服务器经过网络传输信息,用户可以通过计算机或移动设备进行信息交流交流,这种交流方式非常简单方便,这使得现在网络通讯已近成为了一种为人们广泛使用的通讯方式。
我们最为熟知的的QQ、微信以及国外的Google Talk,Line,Skype等等都是网络通讯软件。这些网络通讯软件除了提供最简单的文字交流服务之外,还拥有语音、视频等多种交流方式,这吸引了很多人来使用网络通讯软件,无论男女老少。
因为网络通讯软件具有其他大多数通讯方式所不具备的便捷性及容易掌握的特性,使得大量的人成为他的使用者,这是以往电话、写信等交流方式所不能比拟的,各种数据及调查表明网络通讯会成为21世纪人们的最主要的交流方式。
在我看俩促进网络通讯系统在21世纪寻书发展的原因有以下几点,他们是:
(1)互联网的快熟发展与普及使得很多人成为了网民,他们更能接受网络上面的新鲜事物,网络通讯软件是其中一种。
(2)网络通讯软件独有的社交性使得每个用过它的人容易转变为网络通讯软件的忠实用户。
(3)相比于传统的通讯方式,使用网络通软件进行交流更加便宜,所消耗的费用更低。
1.2 开发网络通讯系统的意义
网络通讯软件是为聊天而生的,但是到了现在,它早已超越了聊天的范围,它除了文字聊天之外,还增加了语音和视频功能。这大大增加了网络通信系统的重要性,而且使人与人之间的沟通更加便利。除了PC与PC之间的实时通信系统,手机与手机之间、PC与手机之间的的通讯也得到了实现。
厂商不断研究并开发网络通讯软件的新功能,这是有很大意义的,人们的生活水平不断提高,我们需要匹配更好的服务。前文说过的,刚开始的网络通讯只提供文本聊天服务,但这种简单的聊天方式不再是和现在的生活节奏与现在的人,所以厂商推出了语音聊天以及视频聊天。不仅如此,网络通讯软件的发展还远未达到尽头,比如腾讯QQ账号可以作为许多APP的账号,这免去了你重新注册账号的功夫,而且也避免你因为帐号太多而忘记密码。
我很期待未来的网络通讯软件会有什么有趣的变化,它又能怎样改变我们的生活。
1.3设计思路
我的课程设计目标是设计网络通讯系统服务器,而我在生活中接触过许多网络通讯工具,比如QQ,抛开那些复杂的功能,我所设计的服务器必须要具有登陆、注册、消息记录以及客户端通信等功能,当然了我们用户直接面对的都是客户端,我们的消息都是通过服务器转发的,而且在服务部分存在着我们的消息记录、用户名以及密码等数据。
要达到这些要求,服务器必须是一个并发服务器,这样能够处理多个客户端的连接,我在查阅相关资料决定设计多进程并发服务器。而且要满足上述的功能模块,我必须要依靠相应的数据库,所以我要在服务器程序中加入有关数据库的模块,而服务器与客户端的连接毫无疑问要用到socket套接字,这些都要在程序设计中用到。