自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

三哥的博客

学习笔记

  • 博客(81)
  • 资源 (9)
  • 收藏
  • 关注

原创 matlab素描算法实现

matlab 实现图像素描化处理处理一幅图像,生成实际的素描图像,基本原理见:photoshop图像滤镜——素描算法实现代码如下:I=imread('C:\Users\Administrator\Desktop\c.jpg'); figure(1); imshow(I); info_size=size(I); height=info_size(1); width=...

2018-04-15 22:53:18 4688 4

原创 Linux 信号量

信号量信号量主要用于进程和线程间的同步,信号量保存一个整数值来控制对资源的访问,当值大于0时,表示资源空闲可以访问,等于0时表示资源分配完毕无法访问,小于0时表示有至少1个线程(进程)正在等待资源。如果信号量的值只为0或1,那么它就是一个二元信号量,功能就想当于一个互斥锁。信号量的P,V操作信号量只有两种操作:等待和发送信号,分别用P(s), V(s)表示。P,V操作是不可分割的。P(s): 如果s

2017-08-19 18:20:49 2045

原创 tcp状态转移

TCP状态转移图一个正常连接和断开过程客户端和服务器端的状态转移如下: 其中TIME_WAIT 状态是在服务端发送FIN后,客户回复ACK后,客户端需要等待2MSL时间(报文最大生存时间): 1. 此时若是客户端回复的ACK因为网络的原因,服务端没有收到,服务端要重发FIN,客户端此时处于TIME_WAIT状态,可以继续发送ACK。 总体来说TIME_WAIT状态时为了保证最后一个ACK因丢失,

2017-08-13 16:41:05 1543

原创 排序算法-总结

排序总结1、直接插入排序  按顺序将每个元素插入到适当位置,类似于抓扑克牌,每抓到一张按序插入。 时间复杂度:  最好 O(n);最坏O(n2);平均O(n2);  辅助空间复杂度S(n)=O(1),是一个就地排序,是稳定的排序方法。 2、希尔排序  类似于插入排序,不过这里是分组的,不断的调整增量到1。    时间复杂度:  与增量有关,比直接插入要好一点,但不会太多。  数组中元

2017-04-07 11:13:01 553

原创 数据结构-图

图的定义图G=(V,E)由顶点(vertex)的集V和边(edge)的集E组成,每一条边就是一个点对(v,w)。如果点对即边是没有方向的,那么就是无向图,如果边是有方向的,那么就是有向图。无向图点对用(v,w)表示,有向图点对用<v,w>表示。有些图的边会有权重,用来表示边的权值。当图的每一个顶点与其他定点都存在一条边时为完全图。图a、b分别为有向图和无向图:

2017-03-07 21:31:14 878

原创 优先队列-堆

优先队列  队列是一个操作受限的线性表,数据只能在一端进入,另一端出来,具有先进先出的性质。有时在队列中需要处理优先级的情况,即后面进入的数据需要提前出来,这里就需要优先队列。优先队列是至少能够提供插入和删除最小值这两种操作的数据结构。对应于队列的操作,插入相当于入队,删除最小相当于出队。   链表,二叉查找树,都可以提供插入和删除最小这两种操作。对于链表的实现,插入需要O(1),删除最小需要遍历

2017-03-06 22:41:00 3603 2

原创 数据结构-散列

散列的基本思想就是映射,通过哈希函数将关键字信息映射到另外一个值,这个值保存了关键字信息的存储地址,查找的时候可以直接通过关键字获取查找的信息,而不需要进行复杂的搜索运算,查找的期望时间为O(1),保存了关键字信息的数据结构叫做散列表。例如数12,23,34,46,59,散列函数为数值的十位数字,则这5个值可以分别映射到1,2,3,4,5保存在散列表中,在查找数据时根据其映射值在表中可以直接得到消息

2017-03-06 16:04:09 895

原创 C++关联容器:map,set...

顺序容器是按照元素在容器中位置来保存和访问的,而关联容器则不同,它是通过关键字来进行保存和访问。C++标准库提供了8个关联容器,根据有无重复关键字,有序还是无序保存来区分:map和set是主要的两种关联容器,map中元素为键-值,关键字起到索引作用,值为相关联数据,set只包含一个关键字。关联容器的额外的类型别名:  key_type: 容器的关键字类型  mapped_type: 每个关键字关

2017-03-01 09:25:04 917

原创 C,C++字符串总结

在C中是没有字符串这个数据类型的,字符串都是通过字符数组来保存的。C字符串实际上就是一个以null(‘\0’)字符结尾的字符数组,null字符表示字符串的结束。C中有一个string.h的头文件,里面定义了所有有关C字符串处理的函数,与C++中的string是不一样的。   C++中字符串有一个类string,专门用来处理与字符串有关操作。C++中的string可以理解为一种容器,与STL中的ve

2017-02-28 22:10:59 3588

原创 C++IO流-标准输入与输出

一、I/O类关系在C++不直接处理输入输出,而是通过标准库中的I/O流类来进行处理。标准库主要有下面一些类:istream,ostream,iostream,ifstream,ofstream,fstream等等。其类关系图如下:其中istream用来处理输入流,ostream处理输出流,iostream处理输入输出流,ifstream处理文件数据输入,ofstream处理文件数据输出,fstrea

2017-02-27 21:34:57 1770

转载 Linux netstat命令详解

简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行netstat后,其输出结果为Active Internet connections (w/o servers)Proto Recv-Q Send-Q Local A

2016-11-30 21:54:17 434

原创 Linux cat,more,less等命令

在Linux系统中有三种命令可以用来查看全部的文件:cat,more,less通过这个些命令可以直接在控制台输出需要查看文件的内容,这几个命令各有不同。cat命令可以一次显示整个文件,如果文件比较大,使用不是很方便;more命令可以让屏幕在显示满一屏幕时暂停,此时可按空格健继续显示下一个画面,或按Q键停止显示;less命令也可以分页显示文件,和more命令的区别就在于它支持上下键卷动屏幕,当结

2016-11-30 17:32:52 1741

转载 Linux webbench 源码解析

Web Bench是一个网站压力测试的工具。其最后更新时间是2004年,已经十年多了。其源代码总共才不到600行,全部使用C语言编写,最多可以模拟3万个并发连接。真可谓是简洁代码的代表之作。      用法:可以在安装后直接输入 webbench 或 webbench -h 或 webbench –help. 可以看到:webbench [option]... URL -f|--fo

2016-11-27 10:23:24 615

转载 Linux getopt函数详解

getopt为linux系统中的函数,用来解析命令行参数,调用形式如下:while((c = getopt(argc, argv, "xy:z::")) != -1){ switch(c) { case 'x': ... ... case 'y': ... ... case 'z': ... ... ...

2016-11-25 11:31:07 2080

原创 Linux 线程简单介绍

在处理某些问题时,有时候会通过生成子进程来实现,但是,进程是昂贵的,利用子进程来处理相关问题需要很大的开销,因此有时候需要线程来处理,线程可以看成的轻量的进程。同一进程内的线程共享以下数据:全局内存;进程指令;打开的文件;信号处理函数和信号处置;当前工作目录;用户ID和用户组ID;大多数数据;每个线程有各自的:线程ID;寄存器集合,包括程序计数器和栈指针;栈;errono;

2016-11-21 22:29:20 447

转载 单播、广播、组播的区别和特点

单播、广播、组播的区别和特点当前的网络中有三种通讯模式:单播、广播、组播,其中的组播出现时间最晚但同时具备单播和广播的优点,最具有发展前景。1.单播: 主机之间一对一的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。如果10个客户机需要相同的数据,则服务器需要逐一传送,重复10次相同的工作。但由于其能够针对每个客户的及时响应,所以现在的网页浏览全部都是采用单播模式,具体的说就

2016-11-12 11:12:52 4556

原创 fcntl 和 ioctl

一、fcntlfcntl 函数用于执行各种描述符控制操作;/* 返回值:成功取决于cmd,失败返回-1; * 定义: */#include <fcntl.h>int fcntl(int sockfd, int cmd, /* int arg */);/* 说明: * 第三个参数可有可没有,根据需要给出; */函数有下面5种功能:复制一个现有的描述符(cmd=F_DUPFD);获得/

2016-11-09 11:04:24 3886

原创 Linux Unix域套接字

套接字API多用于网络通信,用于不同主机间进行通信,虽然也可以用于同一主机进程间通信,但是没有Unix域套接字效率高。Unix域套接字用于同一主机进程间通信(即单个主机上客户/服务器通信),提供两种套接字类型字节流套接字(类似TCP)和数据报套接字(类似UDP)。1、Unix域套接字结构#include <sys/un.h>struct sockaddr_un{ sa_family_t s

2016-11-03 21:35:28 4162

原创 Linux IO函数

Linux网络编程中,针对套接字读写的函数有很多,下面介绍一些函数的常见用法;这里介绍的函数都是linux系统中的特有函数,与C标准库中的IO函数存在一定的区别。1、read() 和 write()函数    read() 和 write() 函数是Linux中最基本的读写函数,可以用于各种数据的读写。/* 返回值:成功则为读取或写入的字节个数,失败为-1; * 定义: */#incl

2016-11-03 10:07:35 1313

原创 Linux 主机名服务名地址转换函数

介绍一些linux套接字编程中常见的地址转换等相关函数。1、gethostbyname, gethostbyaddr  一般来说,网络中使用的地址都是域名地址,这样更加直观可读,需要将地址进行相应的转换来获取实际需要的地址形式。/* gethostbyname * 返回值:成功则为非NULL,错误则为NULL且设置h_errno; * 定义: */#include struc

2016-10-31 11:26:00 1286

原创 Linux 基本UDP套接字编程

UDP(User Datagram Protocol) : 用户数据报协议,是一种无连接,不可靠的数据传输服务。与TCP不同的是,它不需要建立连接就可以直接传输数据,也就不存在关闭连接之类的问题。 常见的UDP程序有:DNS,NFS,SNMP。一、recvfrom 和 sendto 函数  recvfrom 和 sendto 函数主要用于UDP数据的读写操作,一个用于接收网络数据,一个用于向对方发

2016-10-22 10:09:39 605

原创 Linux I/O复用:select ,poll,epoll

I/O复用:一种进程预先告知内核的能力,使得内核一旦发现进程指定的一个或多个I/O条件就绪,它就通知进程。一、5种I/O模型  Linux下有5种I/O模型,分别为:阻塞式I/O;非阻塞式I/O;I/O复用;信号驱动式I/O;异步I/O;  阻塞式I/O,即应用程序调用IO函数,导致程序阻塞(当前进程被挂起,暂停运行直到函数返回),等待数据准备好,如果数据没有准备好,进程

2016-10-19 11:19:52 932

原创 Linux signal, wait, waitpid 函数

信号就是告知某个进程发生了某件事情的通知,有时也称为软件中断,可以由一个进程发给另一个进程,也可以由内核发给进程。一、signal 函数1、定义#include <signal.h>signal(参数1,参数2);/* * 说明: * 参数1位信号名,即我们要处理的信号,在linux中系统信号一共64个,用宏定义表示; * 通过kill -l 可以查看系统所有信号类型; * 其中SIGK

2016-10-15 21:29:00 5646

原创 Linux 套接字编程基础

套接口即网络进程的ID;网络通信归根到底即为进程间的通信;套接字中包含了端口号,用来确定进程,一个端口号一次只能分配给一个进程,即端口号与进程是一一对应的;一、套接字的结构1、IPv4套接字地址结构  IPv4地址结构命名为sockaddr_in,定义在<netinet/in.h>头文件中,结构定义如下:struct sockaddr_in { sa_family_t sin_family;

2016-10-15 15:37:55 3928

原创 Linux安装eclipse

用gcc,gdb在linux上进行编译调试实在是麻烦,安装一个集成开发环境来简化操作。linux上c/c++集成开发环境很多,熟悉的可以使用codeblocks,这里安装eclipse。1、安装JDK  安装eclipse之前需要保证系统上安装了JDK,可以在官网上下载压缩包进行解压安装,这里方式太麻烦,在centos上可以直接输入yum install java 进行安装,需要在root权限下操作

2016-10-13 20:57:26 5742

原创 MySQL 基础

一、MySQL简单介绍  MySQL是一个开源的关系型数据库,具有非常优良的性能,获得许多企业的应用。针对不同的操作系统它有对应的版本,在windows和linux上都可以运行,可以直接到官网上下载安装包直接安装,安装的一般都包括服务器和客户端。若是服务器在另一个电脑上,则本机可以只选择安装客户端进行登录即可,在网上有很多相关的资料。这里学习参数书籍:MySQL从零开始学(刘增杰等)。参考网络

2016-10-04 11:58:31 1133

原创 Effective C++ Note

一、对象使用前确定初始化 — Item 4        类对象在使用前必须保证其初始化,注意和赋值的区别。虽然赋值操作有时可以实现相同的操作,但是某些时候可能会出问题。因此类的构造函数最好使用成员初值列来实现对象数据的初始化,而不是在函数中进行赋值。例: class Test{public: Test(int a, int b);private: int numx;

2016-09-22 16:42:04 620

原创 C++编程笔记-特性

一、虚函数  虚函数一般是定义在基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数,用法格式为:virtual 函数返回类型 函数名(){}。虚函数的作用就是用于运行多态性,即在类继承中,基类和派生类会有相同的成员函数,指向基类的指针在操作它的多态类对象时(这个指针可以指向基类的对象,也可以指向派生类的对象),会根据不同的类对象,调用其相应的函数,这个函数就是虚函数。class

2016-05-31 20:00:32 3020

原创 Java网络编程基础

一、Java网络编程  网络编程在如今这样的网络时代是十分重要的,Java语言提供了丰富的类库来支持网络编程。这里将重点介绍Java.net中的类,充分了解认识Java网络编程的原理并深入学习各模块。在学习Java网络编程之前首先需要具备一定的网络知识:网络的层次结构,常见的网络协议(TCP/IP),IP地址端口号等等。需要学习了解这些内容,可以参考前面的文章。二、主机地址和IP地址  在进行网络访

2016-05-08 16:19:43 2664

原创 Java IO学习

一、Java IO  Java 的IO包含了java的输入输出,所有的类都在java.io包中。其主要内容就是java的输入输出流,又可以分为字符流和字节流。其中字符流以字符来处理输入输出操作,字节流则以字节为单位来处理输入输出流。接下来将分别介绍几个重要的IO操作类。二、File类  File类是java.io包下与平台无关的文件和目录处理类,对文件和目录可以实现新建,删除,重命

2016-04-22 22:02:28 2332

原创 Java多线程学习

一、线程的理解  线程是一种轻量级的进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单。即多个线程可以同时执行,就像有多条流水线一样,可以同时进行工作,是并发执行的。      程序是由进程组成的,进程是由线程组成的。其实进程就是一个程序,线程是一个程序正在进行的一部分功能。所谓进程

2016-04-16 11:31:59 3323

原创 Java的引用数据类型及应用

Java的数据类型基本数据类型和引用数据类型的区别和联系:一、从概念方面来说基本数据类型:变量名指向具体的数值 引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值二、从内存构建方面来说基本数据类型:变量在声明之后java就会立刻分配给他内存空间int a; //声明变量a的同时,系统给a分配了空间 a=12;引用数据类型:它以特殊的方式(类似C指针)指向对象实体(具体的值),这

2016-04-15 10:59:17 5414

原创 Java学习基础入门

准备学习java,这里做些整理,了解一下开发java的基本过程以及java的基本特性。与C++做些简单的比较,熟悉两种语言的共性和区别。Java 的主要特性:1、Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指

2016-04-12 21:20:50 3955

原创 C++ string与stringstream

string  C++标准库中定义了一个string类,用来处理可变长字符序列。使用string类要包含头文件,string定义在命名空间std中;   #include<string> using namespace std;1、string的定义和初始化string str1; //定义string str2 = str1; //复制赋值string

2016-04-12 12:06:12 4218

原创 TCP的超时重传机制与拥塞避免

TCP超时与重传机制      TCP协议是一种面向连接的可靠的传输层协议,它保证了数据的可靠传输,对于一些出错,超时丢包等问题TCP设计的超时与重传机制。其基本原理:在发送一个数据之后,就开启一个定时器,若是在这个时间内没有收到发送数据的ACK确认报文,则对该报文进行重传,在达到一定次数还没有成功时放弃并发送一个复位信号。   这里比较重要的是重传超时时间,怎样设置这个定时器的时间(RTO)

2016-04-04 21:45:33 17488

原创 Matlab曲线绘制详解

Matlab画图详解  连续曲线-plot  plot()函数是一个非常常见的画图函数,一般用来画连续的曲线。具体用法如下:   plot(y):y为纵坐标的值(一个1*n矩阵),y的index作为横坐标。   plot(x,y): x为横坐标,y为对应纵坐标。   plot(x,y,’r*-‘):前面的相同,后面’r*-‘表示曲线为红色,点处为*型,用-连接各点。   plot(x1,y1

2016-04-04 16:33:04 110848 3

原创 Wireshark-TCP协议分析(包结构以及连接的建立和释放)

TCP:传输控制协议  TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。   面向连接: 面向连接意味着使用tcp的应用程序在传输数据前必须先建立连接,就如打电话一样,要先进行拨号,等待对方响应才能开始说话。   可靠性:tcp协议通过下列方式来提高可靠性: 应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。由TCP传递给I P的

2016-04-02 17:00:54 52019 8

原创 Wireshark-DNS数据报分析

DNS:域名系统  DNS是一种用于internet上提供IP地址和域名相互映射的分布式服务系统。可以通过IP地址获取相应的域名,也可以通过域名获取IP,这样可以不用记住难记的IP。   我们实际网络中的DNS服务是由网络运营商提供的。大多数地区都有相应的域名服务器。114.114.114.114是一个公共的DNS服务器,任何地方都可以通过这个服务器获取DNS服务。   域名是通过.来区分不同级

2016-04-01 12:11:20 21377

原创 Wireshark-IGMP协议

IGMP:internet组管理协议  IGMP协议是运行在网络层的一个协议,用于主机和路由器组播的管理。   正如ICMP 一样,IGMP也被当作IP层的一部分。IGMP 报文通过IP数据报进行传输。不像我们已经见到的其他协议,IGMP有固定的报文长度,没有可选数据。         这是IGMP v1的格式,下面为IGMP v2 的格式       组播可以分成MAC层组播/IP层组播

2016-03-31 22:45:00 6850

原创 Wireshark-UDP数据报分析&&广播

UDP协议:用户数据报协议  UDP协议是一个简单的面向数据报的传输层协议:进程的每个输出操作都正好产生一个 U D P数据报,并组装成一份待发送的 I P数据报。UDP协议的特点:  - UDP是一个无连接的协议  - UDP使用最大努力交付,不提供可靠性  - UDP头部只有8个字节下面是UDP数据报在IP数据报中的位置UDP首部个字段:UDP数据是服务于应用层的,这里的端口号就是用于区分不同

2016-03-31 20:43:21 11948

rendermonkey1.82

rendermonkey1.82官方版(包括mac版)+ 官方高清资源-pdf文档

2018-11-03

Introduction to 3D Game Programming with DirectX 11

Introduction to 3D Game Programming with DirectX 11, 龙书高清版,带完整书签,需要完整代码可私信

2018-11-03

Real Time 3D Rendering with DirectX and HLSL

Real Time 3D Rendering with DirectX and HLSL 高清带完整书签

2018-11-01

character animation with direct3d

character animation with direct3d 英文高清原版,带详细书签,非扫描版,可以任意选中文字

2018-11-01

Effective C++中文第三版pdf 带完整目录书签

Effective C++中文第三版 清晰pdf,带完整目录书签,绝对好资源 网上大多数都是不带书签的,看起来比较费劲,本人经过整理添加详细书签,方便阅读。

2017-09-27

计算机网络第五版

中文 带书签

2016-11-12

UNIX环境高级编程第三版

中文,带书签

2016-11-12

基于无线传感器网络交通红绿灯控制系统研究

基于无线传感器网络交通红绿灯控制系统研究

2014-11-14

java 典型模块项目实战大全资料

java 典型模块项目实战大全全书代码资料。

2014-11-14

空空如也

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

TA关注的人

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