自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 linux多播常见问题解决办法

1、组播和广播需要在局域网内才能实现,另外得查看linux系统是否支持多播和广播:ifconfig UP BROADCAST MULTICAST MTU:1500 跃点数:1 说明该网卡支持 2、发送多播包的主机需要设置网关,否则运行sendto()会出现"network is unreachable",网卡可以随便设置,但是一定要设。还要添加路由240.0.0.0,即: 

2015-11-12 17:23:49 2452

原创 The Constrained Application Protocol (CoAP)协议翻译

AbstractCoAP是专门用于受限节点(通常配备8位的微处理器和很小的RAM&ROM)和受限网络(低功耗有损网络,如6LowPAN)的网络传输协议。用于IoT/M2M领域。CoAP消息使用请求/回应模型。支持内建的服务和资源发现功能,并且支持URI和网络媒体类型等网络上的关键概念。CoAP可以很容易和HTTP进行交互,同时拥有自己独特的特性,比如多播支持,非常小的消息头等,使之非常适用

2015-10-15 11:39:14 1610

原创 nrf51822开发问题汇总【持续添加】

下载程序时出错 --> * JLink Info: Could not measure total IR len. TDO is constant high.解决办法:option -> debug -> settings -> debug -> port那里选SW,此时右边应该不是空白(ARM CoreSight ...)

2015-09-29 11:09:28 1908

原创 Makefile笔记

makefile文件需要被命名为Makefile, makefile或者GNUmakefile。执行make命令时,会在当前目录查找上面3个文件。如果makefile文件没有被命名为上面三种,可以用-f参数指定具体的文件: make -f xxxfile如果不是执行当前目录下的makefile,可以用-C参数指定makefile文件的位置: make -C xxxdir

2015-03-11 09:59:18 504

原创 请遵守好的编程风格 -- 关于.h文件去写函数的具体实现

今天往工程里添加Log.h和Log.cpp这用来打印log的文件时, 编译报错误. Log.cpp里的一些函数调用func1(), func2(), funcXXX()找不到实现, 可是那些函数明明在公共的接口库xxx.h和xxx.cpp里有声明和实现啊, 函数包含也没有问题.问题排查 --> xxx.h里的函数声明都是static的, 很奇怪, 经对比, 只是我这个项目里这样, 其它项目

2014-05-23 16:21:50 5048 1

转载 socket为send和recv设置超时时间

linux和windows下用setsockopt设置SO_SNDTIMEO,SO_RCVTIMEO的参数的一点区别  UDP的socket在某些情况:如对方关闭时,本地可能sendto不出去数据,然后recvfrom就会被阻塞,这时就需要设置 这两个参数的值提高程序质量。linux:    struct timeval timeout={3,0};//3s 

2013-12-19 16:05:25 36338

原创 TCP连接探测中的Keepalive和心跳包. 关键字: tcp keepalive, 心跳, 保活

1. TCP保活的必要性1) 很多防火墙等对于空闲socket自动关闭2) 对于非正常断开, 服务器并不能检测到. 为了回收资源, 必须提供一种检测机制.2. 导致TCP断连的因素如果网络正常, socket也通过close操作来进行优雅的关闭, 那么一切完美. 可是有很多情况, 比如网线故障, 客户端一侧突然断电或者崩溃等等, 这些情况server并不能正常检测到连接的断

2013-11-29 17:46:21 35045 6

原创 linux平台开发有用的一些知识点. 持续更新.

1. ~/.bash_profile和~/.bashrc /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置./etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.~/.bash_profile:每个用户

2013-11-14 14:30:07 1001

原创 linux平台开发问题个人总结. 持续更新帖~

1. 如果编译连接都通过了, 可是运行时却找不到函数符号了.错误信息: ./a.out: symbol lookup error: ./a.out: undefined symbol: xxx()错误原因: 请注意你的目标文件是否存在多份? 比如程序所在目录有个xxx.so库, 系统目录/usr/local/lib里也有一份. 可是现在程序目录下的改变了一个函数, 编译连接时makefil

2013-11-13 16:04:55 803

转载 Valgrind 使用

http://www.ibm.com/developerworks/cn/linux/l-cn-valgrind/

2013-11-08 10:12:45 763

原创 Linux编程环境介绍(3) -- linux下的c/c++程序开发

目录:1. 编辑器( Vi )【vi 与 vim】vi(visual interface)是linux系统最重要的文本编辑器, 所有的 Unix-Like 系统都会内置vi文本编辑器. vim则是从 vi 发展出来的. 它完全兼容vi, 并且扩展了很多额外的强大功能. vim 的官方网站 (http://www.vim.org) 自己也说 vim 是一个『程序开发工具』, 而非

2013-10-11 09:55:40 2789 4

原创 Linux编程环境介绍(0) -- 前言

这个系列一共三章, 比较宽泛地介绍了linux系统下的编程环境, 讲述了该系统的发展历程, 以及linux系统下程序开发必须掌握的一些知识和工具. 文章介绍了linux平台的一些最基础的知识, 旨在对linux系统下的开发环境有个大体的了解, 而不谋求在很短的时间内就能对各方面都能有很深的掌握. 能够对文档内容有个基础的概念性了解, 真正遇到问题能够作为方向指引, 再进行进一步的学习即可.

2013-10-11 09:49:16 865

原创 在0~N(不包括N)范围内随机生成一个长度为M(M <= N)且内容不重复的数组

PS: 代码涉及的随机函数和一些容器虽然是C++的, 但算法是通用的, 这些容器java等其它语言里也都能找到类似的存在.1. 最朴素暴力的做法.void cal1(){ int i = 0, j = 0, num = 0; int result[M]; result[0] = rand() % N; //第一个肯定不重复, 直接加进去 for (i = 1; i < M; i++) //获得剩下的(M-1)个随机数 { num = rand() % N; //生成0 ~ N之间的随

2013-10-09 15:38:31 4678 4

转载 top查看cpu

1. Linux下,如何看每个CPU的使用率:#top -d 1(此时会显示以1s的频率刷新系统负载显示,可以看到总的CPU的负载情况,以及占CPU最高的进程id,进程名字等信息)(切换按下数字1,则可以在显示多个CPU和总CPU中切换)之后按下数字1. 则显示多个CPU   (top后按1也一样)Cpu0  :  1.0%us,  3.0%sy,  0.0

2013-09-26 15:56:26 17743

转载 关于C语言程序的编码问题介绍

转来的, 有点乱, 先留着吧...---------------------------------------------------------------------------------------我们传统的程序基本都只在Windows或只在Linux下运行,Windows程序使用简体中文GB18030编码,Linux程序则只使用英文,多年以来这些程序运行起来都没有问题。

2013-09-24 10:43:16 1497

原创 c++ string和wstring互相转化

先立个帖, 慢慢记录.wstring --> string:wstring ws = L"hello";string s(ws.begin(), ws.end());char c[] = "hello";cout string --> wstring://

2013-09-17 17:40:26 901

原创 VI命令简录

1. 清空文件内容: (命令模式)gg --> (末行模式).,$d     或    (命令模式)G --> (末行模式)1,.d解释: gg->到文件首行;  G:到文件尾行;  x,yd表示删除x到y行, 其中.表示当前行, $表示尾行.   因此可以光标移到首行, 然后删除本行到尾行.  或者光标移动到尾行, 然后删除第1行到本行.

2013-09-10 11:33:19 820

原创 bash命令

PS: 简单常用的bash命令, 不求全面不求精细, 只求常用够用. 此篇会不断编辑增加..-------------------------------------------------------------------------------------------------------pwd 显示当前所在目录cd 改变目录,能处理绝对和相对路径ls 列出当前目录

2013-09-04 12:08:32 6895

原创 Linux编程环境介绍(2) -- shell(Bash) 介绍

1. 在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe.2. bash (Bourne Again shell)是众多shell的一种, 但它是Linux 预设的shell. bash 是 GNU 计划中重要的工具软件之一,目前也是 Linux distributions 的

2013-09-03 22:31:59 1432

原创 Linux编程环境介绍(1) -- linux的历史

1. linux是什么?"Hello everybody out there using minix——I'm doing a (free) operating system" 在1991年的八月,网络上出现了一篇以此为开篇话语的帖子. 这是一个芬兰的名为Linus Torvalds的大学生在为自己新编写的操作系统寻找志同道合的合作伙伴。一个类似minix、可运行在386上的操作系—— L

2013-09-03 21:54:56 1280

原创 linux文件权限解说

由于Linux是个多用户多任务的系统,因此可能常常会有多人同时使用这部主机来进行工作的情况发生, 为了考虑每个人的隐私权以及每个人喜好的工作环境,因此角色的概念非常重要. 这里有3个概念.1)档案拥有者(user): 创建档案的人.2)群组(group): 档案所属的群组.3)其他(others): user和group之外的其它用户.

2013-07-04 13:20:20 9558 8

原创 c/c++ 前置声明 -- typedef问题

前置声明的好处很多, 比如能避免头文件互相包含的冲突, 比如有时我们在一个头文件中只需要另一个头文件的某个类型定义, 只需要对它做一下前置声明即可,因为为了相对较小的目的要包含进来一个很大的头文件, 实在有些"不值", 况且这个头文件可能还要被其它很多文件再包含的, 这样代价就更大了.所以做前置声明即可, 在源文件真正需要的时候再包含那个头文件.之前也声明过类和c++方式定义的

2013-06-15 14:53:19 14334 4

原创 新的开始~

到深圳一个多月了, 安顿的差不多了. 如愿以偿转型到了linux服务器开发方向, 目前职位LBS应用开发工程师.很是惊喜, 一方面有了学习linux的机会, 另一个方面是很热门的LBS.加油吧, 期待深圳能有更多的机会和惊喜~

2013-06-15 14:07:35 724

原创 排序(3) -- (直接)插入排序

之所以标题加上"(直接)"的字眼, 是因为有许多时间复杂度为更低的算法都是对这个最原始/直接的插入排序算法优化演变出来的. 所以他们也可以算是插入排序. 当然, 这里我们要说的是最原始最直接的插入排序.插入排序: O(n ^ 2)插入排序(InsertSort)的基本思想是:每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。第一趟比

2013-04-09 01:25:48 618

原创 排序(2) -- 选择排序

选择排序: O(n ^ 2)选择排序(SelectSort)的基本思想是:第一趟, 从a[0]...a[n-1]中选择出最小的, 与a[0]进行交换; 第二趟, 从a[1]...a[n-1]中选择出最小的, 与a[1]交换; ...; 第(n-1)趟, 从a[n-2]...a[n-1]中选择出最小的, 与a[n-2]进行交换. 结束. 最后形成了一个升序排列.选择排序是不稳

2013-04-08 00:45:32 702

原创 排序(1) -- 冒泡排序

把几个排序算法先回顾, 学习, 整理一下吧...开个张, 最常挂在嘴边的 -- 冒泡排序冒泡排序:冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。则第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个

2013-04-08 00:08:55 665

原创 今天开始, 养成写博客的习惯.

最近要离职了, 复习时发现很多似乎会的, 真要表述的时候, 却发现其实并不扎实.决定现在开始, 养成写博客的习惯, 几年后回头看看, 也许会有些感慨!

2013-04-07 23:44:27 610

转载 C++中各种类型的成员变量的初始化方法

有些成员变量的数据类型比较特别,它们的初始化方式也和普通数据类型的成员变量有所不同。这些特殊的类型的成员变量包括:a.引用b.常量c.静态d.静态常量(整型)e.静态常量(非整型)    常量和引用,必须通过参数列表进行初始化。    静态成员变量的初

2011-10-19 14:03:39 3077 1

原创 C++派生类--基类构造函数,内嵌对象(子对象)的执行顺序

与派生类构造函数的初始化列表顺序无关,是按如下顺序:1.基类构造函数(按继承时的顺序)2.子对象构造函数(按类中声明的顺序)3.派生类自己的构造函数 析构时:与构造时相反  测试程序如下:#include using namespace s

2011-10-17 16:51:27 5788 2

转载 ftp主动模式与被动模式介绍

1.FTP仅仅支持TCP,不支持UDP。21是命令端口,20是数据端口。他有2种工作模式:主动FTP和被动FTP。<br />2.<br />主动FTP:<br />   命令连接:客户端 >1023端口 -> 服务器 21端口<br />   数据连接:客户端 >1023端口 <- 服务器 20端口 被动FTP:<br />   命令连接:客户端 >1023端口 -> 服务器 21端口<br />   数据连接:客户端 >1023端口 -> 服务器 >1023端口 <br />主动FTP对FTP服务器的管

2011-05-11 17:07:00 1374

转载 ftp中主动模式(port)与被动模式(PASV)

<br />开场白<br />  处理防火墙和其他网络连接问题时最常见的一个难题是主动FTP与被动FTP的区别以及如何完美地支持它们。幸运地是,本文能够帮助你清除在防火墙环境中如何支持FTP这个问题上的一些混乱。<br />  本文也许不像题目声称的那样是一个权威解释,但我已经听到了很多好的反馈意见,也看到了本文在许多地方被引用,知道了很多人都认为它很有用。虽然我一直在找寻改进的方法,但如果你发现某个地方讲的不够清楚,需要更多的解释,请告诉我!最近的修改是增加了主动FTP和被动FTP会话中命令的例子。这些会

2011-05-10 14:37:00 812

原创 获取windows进程列表,并以字符串形式查询是否存在某一进程

<br />需要的头文件:<br />#include<windows.h><br />#include<Tlhelp32.h><br /> <br />boolhaveThisProcess(char*p)<br />{<br />    WCHARprocess[128];<br />    mbstowcs(process,p,128);//把char*转化为wchar_t*<br />    PROCESSENTRY32pe32;<br />        //在使用这个结构之前,先设置它的大小<b

2011-05-03 10:49:00 1369 1

转载 linux-ubuntu与Debian系统中的update-rc.d(创建/注册系统服务)

<br />在ubuntu下开机自启动程序流程:<br />1.编写服务脚本放在/etc/init.d下,例如servicetest<br />/etc/init.d/servicectest<br />2.在/etc/rc*.d中制作相关的link。K开头是kill, S开头是start, 数字顺序代表启动的顺序。<br />update-rc.d 可以帮你的忙。<br />例如:<br />在/etc/init.d 中建立一个叫作servicetest的script , 然后<br />update-r

2011-04-06 10:42:00 7042

转载 如何将应用程序注册为系统服务

<br />一、应用程序具有服务功能(能响应服务控制台的查询请求)<br />第一种方法:使用instsrv.exe(windows 2003资源工具包带有),指令格式:instsrv 服务显示名 应用程序路径<br />第二种方法:在注册表中手工添加,在HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/下新建一个项,项名为欲显示的服务名(也可以为任意字符,仅供识别),在这个项下新建如下键值:<br />"DisplayName"=(字符串值)服务显示

2011-04-02 08:56:00 1218

转载 windows注册系统服务

<br />网上帮你找了一下<br />你可以看看<br /><br />当然,系统服务是开机启动的程序(可以简单这样理解,很多病毒都使用)<br /><br /><br />WindowsXP系统服务<br /><br />在系统启动的时候会自动启动很很多系统服务用于硬件驱动、内存管理、网络服务等多方面服务。services.msc是windows系统自带的服务管理器,net命令是对应的命令行方式工具。<br />net<br /><br />services.msc是图形界面的,没有什么好说的,都能看懂

2011-04-01 17:18:00 1431

转载 Windows服务与编程

<br />一> 序言 Windows下的服务程序都遵循服务控制管理器(SCM)的接口标准,它们会在登录系统时自动运行,甚至在没有用户登录系统的情况下也会正常执行,类似与UNIX系统中的守护进程(daemon)。它们大多是控制台程序,不过也有少数的GUI程序。本文所涉及到的服务程序仅限于Windows2000/XP系统中的一般服务程序,不包含Windows9X。本文相关服务级后门程序和代码可以到我们的主页FZ5FZ下载。 二> Windows服务简介 服务控制管理器拥有一个在注册表中记录的数据库,包含了所有

2011-04-01 17:00:00 1424

原创 win7下utantu上网设置

<br />win7需做的设置:<br />控制面板-->网络和Internet-->网络和共享中心:<br />查看活动网络里-->点击"VMware Network Adapter VMnet8"-->属性<br />-->ipv4-->获得ip地址和DNS地址都选自动-->确定<br /> <br />VM需做的设置:<br />VM-->Settings-->在Hardware栏里选择Network Adapter-->右边的界面有4种连接方式,选择"NAT".<br /> <br /><br />

2011-03-30 14:40:00 820

转载 利用Qt进行FTP网络编程

Qt是一个用于桌面系统和嵌入式开发的跨平台应用程序框架。它包括一个直观的API和一个丰富的类库,并且对通用网络协议提供了很好的支持。在本文中,我们将向读者介绍如何利用Qt提供的网络编程有关的类来进行快速的FTP编程,下面首先介绍FTP协议的基础知识,然后用实例讲解FTP的客户端编程。 一、FTP<br />我们都知道,FTP协议是互联网上的文件传输协议,利用它我们可以将一个文件的副本从一台计算机传输到另一台计算机上。就像许多其他网络应用一样,FTP使用客户/服务器模式。FTP客户打开一个控制连接与服务器连接

2011-03-18 13:58:00 8011 1

转载 FTP和HTTP断点续传原理

<br />第一,最重要的一点,断点续传需要服务器的支持,这个是必要条件。 <br />传统的FTP SERVER是不支持断点续传的,因为它不支持REST指令,传统的FTP指令(我是指服务器端指令)并不包括REST指令。 <br /><br />第二,客户端要知道使用REST等一系列指令来作断点续传。 <br /><br />看看断点续传的详细过程(FTP SERVER): <br />首先客户端使用REST指令来告诉FTP SERVER它需要从文件的某个点开始传,接着用STOR或者RETR命令开始传文件,

2011-03-17 16:43:00 4996 1

空空如也

空空如也

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

TA关注的人

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