自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

華仔的博客

技术大爆炸

  • 博客(21)
  • 资源 (3)
  • 收藏
  • 关注

原创 【嵌入式学习历程17】Linux网络编程(UDP篇)

什么是UDP UDP即用户数据报协议,它是一种无连接的协议,因此不需要像TCP那样通过三次握手来建立一个连接。同时,一个UDP应用可同步作为应用的客户或服务器方。由于UDP协议并不需要建立一个明确的连接,因此建立UDP应用要比建立TCP应用简单的多。 UDP在数据传输过程中延迟小、数据传输效率高,适合可靠性要求不高的应用程序,或可以保障可靠性的应用程序。通常音频、视频和普通数据在传送时使用UDP

2017-12-13 21:58:57 2287

原创 模拟QQ聊天——采用TCP协议的C/S架构实现

模拟QQ聊天,一个服务器处理多个客户端的连接,同时要求各个客户端之间能够自由通信。 本程序采用C/S架构,利用多线程完成。服务器端:a#include <stdio.h>#include <sys/socket.h> #include <sys/types.h>#include <sys/socket.h>#include <stdlib.h>#include <string.

2017-12-11 20:16:47 3455

原创 字节序

什么是字节序 字节序,即字节在电脑中存放时的序列与输入(输出)时的序列是先到的在前还是后到的在前。分为大端和小端。什么是大端和小端 所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中; 所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。为什么会有大小端 为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是...

2017-12-10 23:49:01 167

原创 【嵌入式学习历程16】Linux网络编程(TCP篇)

什么是TCP/IP TCP/IP 实际上一个协同工作的通信家族,为网络数据通信提供通路。为讨论方便可TCP/IP 协议组大体上分为三部分: 1、Internet 协议(IP) 2、传输控制协议(TCP)和用户数据报协议(UDP) 3、处于 TCP 和 UDP 之上的一组应用协议。它们包括:TELNET,文件传送协议(FTP),域名服务(DNS)和简单的邮件传送程序(...

2017-12-10 22:40:54 1130

原创 利用多线程与消息队列实现聊天

在是一个简易聊天中提到,一个进程只能做一件事,其实不然,只是当时没有涉及到线程的概念。所以今天在用多线程来实现一次。 依旧是两个程序,每个程序包含两个线程。#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#include <stdio.h>#include <stdlib.h>#include <string.h

2017-12-10 00:11:02 2507

原创 卖票——多线程模拟卖票系统

网上抢票,方便又高效,很舒服。应用多线程的同步运行可以模拟很多人抢票,而且不会发生冲突。下面,我们就来利用多线程来模拟一把。#include <stdio.h>#include <stdlib.h>#include <pthread.h>int Tickets = 100; //定义票数为全局变量,所以线程都可访问pthread_mutex_t mutex; //定义互斥锁void

2017-12-09 23:56:13 3211

原创 【嵌入式学习历程15】多线程编程

什么是线程 线程是进程中执行运算的最小单位,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。如果把进程理解为在逻辑上操作系统所完成的任务,那么线程表示完成该任务的许多可能的子任务之一。线程自己基本不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但它可以与同属一个进程的其他线程共享进程所拥有的全部资源。线程和进程的区别与联系 1、进程和线程的主

2017-12-09 22:12:41 2569

原创 简易聊天——消息队列实现进程间通信

为什么这个不是极简版聊天了呢?因为它加强了,不像管道实现的聊天,只能一个人说话,而另一个人只能静静地看着。而消息队列实现的可以两个人正常交流。 在此之前,我们先来了解一下消息队列: *unix早期通信机制之一的信号能够传送的信息量有限,管道则只能传送无格式的字节流,这无疑会给应用程序开发带来不便。消息队列(也叫做报文队列)则克服了这些缺点。 *消息队列就是一个消息的链表.可以把消息看作一个记录

2017-12-09 00:07:02 1426

原创 通讯录系统设计(带文件保存)

语言:c语言格式: 编号 姓 名 住址 电话 住宅电话 201701 * xxxx 183****5668要求:使用结构体形式对数据存储功能:使用链表实现增加(在增加人员的过程中有一个自动排序功能,比如按姓名排序)、删除、修改、查找(比如:工号查找、电话查找)的功能; (1)添加用户信...

2017-12-08 20:36:52 1119

原创 极简聊天——有名管道实现进程间通信

为什么说极简呢,因为下面这个程序只能从一端写另一端读。 注意:有名管道用于系统中任意两个进程间通信(不需要有亲缘关系)fifo_read.c#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#inclu

2017-12-08 19:58:48 998

原创 【嵌入式学习历程14】Linux进程间通信(2)

信号 1、什么是信号量 为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行进程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行。而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个进程在访问它,也就是说信号量是用来调协进程对共享资源的访问的。 信号量是一个特殊的变量,程序对

2017-12-07 21:51:53 172

原创 【嵌入式学习历程14】Linux进程间通信(1)

一个大型的应用系统,往往需要众多进程协作,进程间通信的重要性显而易见。**进程间通信的目的***数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间*共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。*通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。*资源共享:多个

2017-12-07 14:05:16 248

原创 进程同步实例

有时候父进程要求子进程的运算结果进行下一步的运算,或者子进程的功能是为父进程提供下一步执行的先决条件,此时父进程就必须在某个位置停下来,等待子进程运行结束,而如果父进程不等待且直接执行下去,就会出现极大的混乱。可以用wait或waitpid函数来解决这个问题。 下面就是父子进程同步的一个实例,子进程进行写操作,父进程读出子进程写的内容#include <stdio.h>#include

2017-12-07 11:30:24 1629

原创 【嵌入式学习历程13】Linux进程控制编程

什么是进程 *标准定义:进程是可并发执行的程序,是在一个数据集合上的运行过程。 *通俗地讲:大家都知道,硬盘上的一个可执行文件经常被称为程序,在Linux系统中,当一个程序开始执行后,在开始执行到执行完毕退出这段时间里,它在内存中的部分就被成作一个进程。 *进程是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元; 程序与进程 *程序是放到磁盘的可执行文件 进程是指程序

2017-12-06 21:03:19 1115

原创 【嵌入式学习历程12】Linux文件编程

Linux下皆文件,短短几个字就道出了文件系统在Linux下的重要性。在Linux操作系统中,它对一切资源的管理归根到底都是对文件的操作。 大背景 在现代操作系统中,要利用大量的程序和数据,由于内存容量有限,且不能长期保存,于是人们想出了把这些数据以文件的形式放在外存中,需要的时候再将它们调入内存,从此就有了文件系统,它负责管理外存上 的文件,并把存取、共享和保护等手段提供给用户,这样就方便了用

2017-12-06 20:48:57 251

原创 【嵌入式学习历程11】数据结构之二叉树

树的概念 树(Tree)是n(n>=0)个结点的有限集。n=0的时候称为空树,在任意一颗非空树中:(1)有且仅有一个特定的称为根(root)的结点;(2)当n>1时,其余结点可以分为m(m>0)个互不相交的有限集T1、T2、T3…..Tm,其中,每一个集合本身又是一棵树,并且称为跟的子树。 * 结点 树的结点包含一个数据元素及若干个指向其子树的分支。 *度 结点拥有的子树称为结点的度。

2017-12-05 23:19:20 436

原创 栈的应用--计算器实现四则运算

学习一个知识点并不是那么难,而要运用所学的知识点去实现一个功能或者做一个项目却总不是那么简单。就像这个标题,如何用栈来做出一个计算器呢?我们先来思考一番,比如有个式子:9 + (3 - 1) * 3 + 10 / 2 , 遇到这个式子我们可能一气呵成就能写出答案是20,因为我们从小学就开始学习数学然后计算,我们太习惯了去做这件事而忘记了去思考为什么要这么做。我们先放慢100倍我们的脑速

2017-12-03 23:01:53 1551

原创 【嵌入式学习历程10】数据结构之队列

前面 我们讲了栈,知道栈有顺序存储和链式存储两种方式,今天的主角--队列也是一样的。我们先来理清队列的概念:1、队列是特殊的线性表;队列仅在线性表两端进行操作;队头(Front):取出数据的一端;队尾(Rear):放入数据的一端;2、性质:先进先出(FIFO)3、顺序队列(一般采用循环队列)规定front指针指向队头元素,rear指针指向队尾元素的下一个位置

2017-12-03 10:55:57 324

原创 【嵌入式学习历程9】数据结构之栈

首先, 这里的栈并不是内存中用来存放数据的那个栈。栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入

2017-12-02 23:35:34 262 1

原创 【嵌入式学习历程8】数据结构之链表

记得以前上C语言课的时候,只要提到链表,脑海里就只有两个词,一是高大上,二是难。今天让我们来看看链表到底是何方神圣。高手还请多多指教!(注:今主要讨论单链表。链表分为单链表、静态链表、循环链表和双向链表)一、定义:链表是线性表的链接存储表示二、特点:每个元素(表项)由结点(Node)构成。1. 结点可以连续,可以不连续存储2. 结点的逻辑顺序与物理顺序可以不一致3. 表

2017-12-02 22:55:14 410

原创 【嵌入式学习历程7】 数据结构之线性表

一、什么是线性表1. 定义n个数据元素的有限序列,记作(a1, a2, …, an)ai 是表中数据元素,n 是表长度。2. 特点:    除第一个元素外,其他每一个元素有一个且仅有一个 直接前驱。        除最后一个元素外其他每一个元素有一个且仅有一个 直接后继。3.线性表包含顺序表和链表。其中顺序表是连续的,而链表是不连续的。二、顺序表的定义和特点定义 :将线

2017-12-02 21:08:13 224

小球碰撞动画(含源码、可执行文件)

小球弹撞动画具有以下功能: 1、小球可以沿着一个随机的方向运动 2、运动时可以加减速 3、随时切换小球形状(圆形,正方形,三角形) 4、碰撞到边框时镜像反弹 5、小球的运动轨迹可以实时显示,边框设置为正方形时更容易画出美丽的图案哦 6、美丽的图案还可以使用截屏保存的功能

2018-07-29

学生管理系统(源码)

利用Qt实现学生管理,对界面化管理系统有一定帮助。。

2018-04-15

Qt界面开发简易计算器

Qt实现简易计算器(源码),可以实现基本的加减乘除以及平方开方和三角函数的计算

2018-04-07

空空如也

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

TA关注的人

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