自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 服务器热重启

在学习服务器开始时学长提出了一个有趣的问题如何在不影响客户端与服务器的连通的情况下,更新服务器端的代码并且执行感觉这个功能应该还是挺重要的,毕竟服务器如果频繁更新的话,每次更新时都让用户退出连接也太不友好了我能想到的解决办法就是利用fork()函数创建子进程重新执行server端代码,将server端与之连接的客户端套接字当做参数传递给子进程然后结束父进程,子进程接收来自客户端...

2019-03-07 19:46:34 1679

原创 我要走迷宫!!

刚学完数据结构,老师让做几个小东西,包括求迷宫最短路径,太简单怎么办,自己给自己加需求咯首先,求迷宫最短路径,先得要有迷宫吧,不过,手动输入迷宫是不是有点太捞了?//随机产生迷宫 71 void Readfile_rand(unsigned int seed) 72 { 73 74 //初始化存储迷宫信息的数组 75 for(int i = 0;i < ...

2018-12-30 21:24:45 469

原创 利用先序中序以及中序后序恢复二叉树

其实也就是递归的思想,我们通过先序序列,可以得知该二叉树的根节点,根据中序序列以及根节点,就可以得到其左子树的先序以及中序序列,同理也得到其右子树的先序以及中序序列,这样递归下去,就可以求出最终的整个二叉树了根据先序中序以及中序后序原理是一样的,不做过多的缀述(不要问我为什么不能根据先序后序恢复) 146 //根据输入的先序以及中序序列创建以root2为根节点的二叉树 147 Bi...

2018-10-30 23:14:49 762

原创 c++实现五子棋单机版(自娱自乐)

说是用c++写的,其实和C语言没差,也没用到C++与语言不同的地方,其实也是因为东西比较简单??其实想做一个可以和其他人对战的五子棋,但是得先把单机实现了再说,鉴于linux系统对于很多字符都是默认输出不了的所以用了其他符号表示棋盘以及棋子 1 /*2018-10-29 2 简易五子棋 3 */ 4 #include <iostream> 5 ...

2018-10-29 19:49:31 2452

原创 利用C/S模型实现简单聊天室

    上次我们谈到实现简单聊天室的程序,其实大概流程在上一篇博客已经有讲清楚了,接下来就是贴代码的事情了。#include <stdio.h>#include <string.h>#include <stdlib.h>#include <time.h>#include <pthread.h>#include <sy...

2018-08-20 00:27:26 1573 1

原创 利用C/S模型实现简单的聊天室(一)

    在学习了socket编程相关内容之后,实现一个简单的聊天功能的程序应该是没有难度了,不过话虽然是这样说,但是要考虑的点说实话一点也不少,要是没有清晰的思路,很可能会出现很多莫名其妙的bug。不过,就算是理清了思路,bug也挺多的。    首先要明确的是我们要实现的是客户端之间的通信,可不是服务器和客户端之间的通信,这点很重要,因为纯粹服务器和客户端的交互说实话写起来没什么意思。  ...

2018-08-18 18:17:47 2469 2

原创 UDP类型的C/S简单实例

与TCP类型的C/S相比较,UDP缺少了connetc(),listen(),acept()函数,这是用于UDP协议无连接的特性,不用维护TCP的连接,断开状态服务器端大体的流程为建立套接字,套接字与地址结构进行绑定,收发数据,关闭套接字,分别对应于函数socket(),bind(),sendto()recvfrom()和close先建立套接字文件描述符,使用函数socket(),生成...

2018-08-08 17:19:12 1279 2

原创 利用bfs求解迷宫问题

定义一个二维数组:int maze【5】【5】= {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。首先我们搞明白bfs的思想是什么其实用...

2018-08-05 23:07:05 1386 2

原创 利用文件操作实现补全功能(二)

在上篇文章里面,我们实现了命令和文件的补全,而且与无缓冲输入结合了起来,可以说是很好玩了,但是还是和真正的终端差的不是一星半点,上网查了一下才发现,原来是有现成的库,readline,而且应用起来非常简单,至少比我们上一篇文章简单多了,还可以有历史命令之类的功能,比我们的不知道强到哪里去了不过,虽然话是这么说,但是还是要把功能做完才安心,接下来,我们将要实现的就是myshell虽然跳跃...

2018-08-02 19:32:05 212

原创 利用文件操作实现补全功能

学习了linux下的一些文件操作函数,玩一点有趣的东西关于补全用过最多的应该就是linux下终端的table键了可以补全命令,文件之类的东西这次我们来看一看怎么实现补全文件这个功能我们先来看看我们要使用的关于文件操作方面函数DIR *opendir(const char *name);struct dirent *readdir(DIR *dirp);其实也就这两个就...

2018-07-27 21:31:30 254 1

原创 C语言系统调用实现chmod

/*2018-7-24 */ ...

2018-07-24 17:12:39 2004

原创 linux下一些小恶作剧

搞了一点好玩的东西感觉没什么用,但是万起来可能会很有趣,可以用来捉弄一下对linux系统仅限于最基本操作的小白试想一下要是你熟知的某些基本命令突然画风一转,变成了如下的样子xxx@xxx-ST-Plus-KN:~$ lshello会不会感觉有点慌,啊,什么情况,我干了什么,我在哪,我在干什么。好了,成功达成我们的目的,让他被水淹没,不知所措ok,其实这个东西只需要懂一点linux系统的就可以了首先...

2018-05-28 00:10:04 763

原创 暴力求解最大不重复子字符串

暴力算法,强行求字符串中的最大不重复子字符串emmmm,怎么说呢,感觉确实很暴力,但是效果还是不错的的#include<stdio.h> 2 #include<string.h> 3 int compare(int head,int tail,char ar[]); 4 int main(void) 5 { 6 char ar[30]; 7...

2018-05-25 00:43:13 468

原创 关于void 类型指针的一些用法

对于void类型指针,它可以指向任意类型的数据,亦可以用任意类型的指针给它赋值,如果要将它赋给其他类型的指针,则需强制类型转换下面是对void类型指针用法的一些探索,利用内存复制函数进行变量制的交换#include<stdio.h>#include<stdlib.h>void swep(void *a,void *b,size_t size){ void *c =...

2018-05-20 23:44:01 454 1

原创 关于逆置输出链表数据的一些想法

    在学习链表的时候,基本就是创建,插入,删除这几种操作,掌握这几种操作之后,对于这种类型链表的学习,才可以说是基本掌握了,而在这几种基础上,我就来谈一谈单链表的逆置输出吧    先来看一看教科书上的基本写法:用头插法实现单链表的逆置输出Head *Inversion(Head *head){    Head *p,*q;    p = head->next;    q = head-&...

2018-05-15 00:28:40 241

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除