关注《一碳科技》编程板块,每天有不一样的干货哦!

聊天室程序——服务器程序制作实例(一部分)

各位看官好久没有给大家更新编程教学文章了,就在昨天,小编试着去给大家录了一个教学视频,但是由于小编是第一次录视频,加上最近有点小感冒,所以效果不太理想,在这里跟大家说一下,昨天录的视频就在《一碳科技》的主页中,因为有些看官说过“如果有视频教学的话会更好”,所以在这里跟大家说一声。

这一期呢,小编想给大家做一个聊天室系统,并将整个过程用视频录下来或用写文章的方式给大家展现出来,但是小编不知道大家是比较喜欢录视频的呢,还是写文章的,所以各位看官可以在评论区留你的意见,小编会做出决定,看是做视频好,还是写文章好。

话不多说,小编今天就将制作服务器程序的一部分过程给大家讲解一下,这个聊天室主要功能就相当于一个聊天室,类似于QQ那种,并且除了可以及时通讯以外,在后期小编还会教大家给聊天室增加一些新的隐藏功能,例如远程控制、文件传输之类的。

封装一个TcpServer类

在这里,小编使用C++来制作我们的服务器程序,因为最近任务比较多,所以小编就先做一部分,然后在根据这部分再写一篇文章或做一期视频。

首先,我们要制作一个名为Server的头文件,在这个头文件里面我们要声明一个TcpServer类

鉴于有很多看官还是属于新手阶段,所以小编会挑几个新手比较常见的问题来讲解,如下图,图中是Server头文件中声明TcpServer类的代码,其中#ifndef、#define、 #endif这三个关键字是新手比较常见的问题,小编来给大家解释一下,他们这三个大概的作用效果就是为了方式多重包含。ifndef 指示检测指定的预处理器变量是否未定义,如果未定义,那么跟在后面的所有指示被处理,直到出现#endif;如果已定义,那么#ifndef测试为假,该指示和#endif指示间的代码都被忽略;#define 指示接受一个名字并定义该名字为预处理器变量。

TcpServer类的成员变量、方法

在这个类中,小编暂时先声明5个变量,分别为 ServerAddr、ListenPort、sock、wd、client,顾名思义,这5个变量的作用为,储存服务器IP信息、监听的端口号、服务器套接字、存放套接字初始化信息、客户端套接字,由于我们是要做一个聊天室的服务器,所以这个服务器必须可以供多台客户端进行同时连接,这就要用到多线程编程技术,这一部分小编将会在这一系列的最后一篇文章给大家讲解。

声明好成员变量、方法之后,我们创建一个名为Server的Cpp文件,这个文件存放TcpServer类中的方法的具体实现过程。有的小伙伴可能就要问了,为什么要这样做呢?这个方式称为模块化编程,在大型的项目中,这么做是很有必要的,所以各位刚入门的小伙伴可以去学习一下——C语言模块化编程

方法的具体实现步骤

我们需要用到以下头文件↓

首先,编写我们TcpServer类的构造函数,在这里这个构造函数将初始化服务器监听端口号、服务器IP地址、使用的协议族、服务器套接字。注意:构造函数不能带有返回值哦!

第二步,编写我们的服务器socket服务初始化函数——IniServer(),这个函数是必须要写的!因为在使用所有socket相关的函数时,都必须先初始化!如下是我们的代码↓

第三步,编写“创建并设置服务器”函数——SetCreateServer(),在这个函数中,我们将要创建一个服务器的套接字,并使用构造函数初始化的服务器信息设置服务器,然后将服务器套接字和服务器端口绑定起来。

第四步,编写“开始监听”函数,这个函数的功能是:对已绑定的端口进行监听,这个函数比较简单,仅仅需要几行代码就搞定了。

第5步,写到这里都快半夜1点钟了,小编困了,先去睡觉了哈哈哈哈,明天再给你们接着写,各位看官请持续关注《一碳科技》哦!

学习源码获取方式

本次给大家分享的源码仅仅是一部分未完工的代码,文章中如果有不明白的地方,可以下载小编分享的源码进行分析、学习。

先关注《一碳科技》,然后私信关键字:“服务器制作源码获取(半工)”即可获得源码下载连接,注意:关键字千万不能错哦!

查看原文 >>
相关文章