自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(191)
  • 资源 (5)
  • 收藏
  • 关注

原创 Socket用户态与内核态调用 关系

Socket的使用很多网络编程的书籍都有介绍,所以本文不打算介绍Socket的使用,只讨论Socket的具体实现,所以如果对Socket不太了解的同学可以先查阅Socket相关的资料或者书籍。当然,系统调用最终都会调用到内核态的某个内核函数来进行处理,在系统调用一章我们介绍过相关的原理,所以这里只会介绍一下这些系统调用最终会调用哪些内核函数。BSD层在内核态实现,主要是为了让不同的协议能够使用同一套接口来访问而创造的,如上图所示,函数是使用汇编来实现的,但是也比较容易理解,我们已经知道在用户态必须使用。

2024-06-12 21:54:05 520

转载 算法时间复杂度

我们假设计算机运行一行基础代码需要执行一次运算。int aFunc(void) { printf("Hello, World!\n"); // 需要执行 1 次 return 0; // 需要执行 1 次}那么上面这个方法需要执行 2 次运算int aFunc(int n) { for(int i = 0; i<n; i++) { // 需要执行 (n + 1) 次 printf("He...

2020-11-10 10:12:16 186

转载 linux内核socket实现

http://blog.chinaunix.net/uid-20788636-id-4408276.html1.2 sock_map_fd函数         在用户空间创建了一个socket后,返回值是一个文件描述符,下面分析一下创建socket时怎么和文件描述符联系的。在SYSCALL_DEFINE3(socket, int, family, int, type,

2017-02-06 22:32:26 6319

转载 lwip协议栈中超时定时器实现原理

lwip协议栈中超时定时器实现原理1,超时定时器存在的目的:      tcpip协议中存在很多需要定时处理的任务,包括一次性超时处理和周期性超时处理。      以tcp传输为例,每条连接总共需要建立七个定时器,依次为:      1)“连接建立”定时器。              如果建立连接启动后75秒内没收到响应,则中止建立。      2)

2016-08-02 22:42:35 3353

转载 python绑定C++类

Python编程语言的应用范围比较广泛,应用方式灵活,可以很方便的帮助开发人员实现一些特定的功能需求。比如今天为大家介绍的有关Python绑定C++程序的相关操作,大家就可以从中了解到这一语言的应用特点。Python流程控制关键字基本内容总结Python连接数据库两种常用方法介绍Python中文字符具体应用技巧分享常见Python应用范围总结概览Python程序转为

2016-05-29 22:42:16 1589

原创 lwip timer机制

1,全局链表变量:next_timeout;2,使用sys_timeout向next_timeout中添加某一timer成员,该timer的handler中会按再向next_timeout中添加自身成员变量;3,在tcpip thread的主循环中,会不断的从next_timeout中取出成员,并判断该成员是否已经超时,如果超时,则执行相应的handler方法;在向往取time

2016-04-18 22:37:20 2312

原创 lwip tcp 收发分片处理

1,发端:1)会按照设置的最大segment对于应用层下发的数据包进行分片;最大segment长度:u16_t mss;   /* maximum segment size */2)分片操作: do_writemore中的tcp_write(循环组装segment): while (pos 2,收端:只需要按照segment接收处理即可,不需要考虑segment是否

2016-04-14 00:31:38 4178 1

转载 ubuntu tun/tap安装

People using VPN software indeed face this issue. See :http://ubuntuforums.org/showthread.php?t=1459559&highlight=module+tun+aventail&page=3This link mentions a work-around :sudo apt-get ins

2016-03-04 00:34:31 4371

转载 信号量与锁的差别

信号量与锁的差别 分类: C/C++信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在 哪里)。而互斥锁是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这 个资源。比如对全局变量的访问,有时要加

2016-01-24 14:17:17 7110

转载 linux内核同步方法

内核中提供了多种方法来防止竞争条件,理解了这些方法的使用场景有助于我们在编写内核代码时选用合适的同步方法,从而即可保证代码中临界区的安全,同时也让性能的损失降到最低。主要内容:原子操作自旋锁读写自旋锁信号量读写信号量互斥体完成变量大内核锁顺序锁禁止抢占顺序和屏障总结 1. 原子操作原子操作是由编译器来保证的,保证一个线程对数据的操作不会被其他线程打断

2015-09-27 23:58:39 843

原创 OpenLTE中的机制说明-定时器篇

openLTE中的定时器统一由LTE_fdd_enb_timer_mgr来进行管理.举例流程如下:1,RLC中的轮询重传定时器添加方法如下:rlc_start_t_poll_retransmit{ LTE_fdd_enb_timer_mgr *timer_mgr = LTE_fdd_enb_timer_mgr::get_instance(); LTE_fdd_enb_timer_c

2015-09-19 00:11:51 2465

转载 ns3 g++ 编译

ns3中使用的编译系统是waf,所有的c++工程都需要经过waf编译后运行,调试时也需要waf的。但是实在是受不了waf的编译系统了,:-),也许是我自己没太搞明白吧。总之,还算喜欢传统的g++,想想ns3本身也是用c++写的,编写的代码也是纯c++代码,为什么不可以使用g++进行编译呢?于是决定折腾一下,以此摆脱waf的束缚。首先,随便试一试用g++编译.cc文件(万恶的ns3竟然只支持

2015-02-24 17:43:44 3334 1

原创 OpenLTE开源代码结构解析(二)_澄清

(二)中有一些疑问,与Ben邮件沟通后得到了澄清:Q1:切换机制的实现A1:目前还没有考虑实现切换机制,主要是由于切换场景还需要系统扩充比较多的机制,另外对于仿真验证场景的要求也比较多;Q2:加密密钥的生成存放A2:由于OpenLTE只是一个开源的系统,更主要的是关注标准中定义机制的实现,对于 一些细节问题,比如生成存放等功能,则没有严格要求与标准中定义的一致;

2015-01-18 23:28:52 3368 5

原创 OpenLTE开源代码结构解析(二)

对eNodeB的一些配置以及代码结构进行说明,如下:一,eNodeB配置结构|| 控制进程(传递eNB配置命令)|| ---》  || eNB按照配置进程的配置命令工作 ||1,  在一个Tab窗口运行LTE_fdd_eNodeB进程(启动eNodeB工作进程)2,  在另一个Tab窗口运行控制进程,可使用连接工具(Telent,nc等)连接LTE_fdd_eNodeB进程(端

2014-12-28 21:19:41 9114 5

原创 OpenLTE开源代码结构解析(一)

跟踪了一个在将开源组织-OpenLTE(将4G通信网络LTE开源),现将自己梳理整理的一些文档Post出来,请有相同兴趣的朋友指点:一,系统介绍OpenLTE是一位Mot的工程师在12年发起的一个git项目,目的在于在PC上面实现LTE基站侧的协议栈,同时也提供了大量的测试分析工具; 该项目动作至今,已经Release到v18.0,包含了主要的LTE基站侧机制,并且已经可以成功运行

2014-12-28 20:55:07 16052 3

转载 LIBSVM简介及其使用方法

LIBSVM简介及其使用方法(台湾大学林智仁(Lin Chih-Jen)副教授等)libsvm , 林智仁libsvm 官方网站:Welcome to Chih-Jen Lin's Home Page http://www.csie.ntu.edu.tw/~cjlin/ http://www.csie.ntu.edu.tw/~cjlin/libsvm /inde

2014-04-11 18:05:20 1856

转载 字符正则匹配

正则表达式用于字符串处理、表单验证、日志数据分析等场合,实用高效。现将自己走网上搜索并总结的常用方法收集了一下:匹配中文字符的正则表达式: [\u4e00-\u9fa5]注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):[^\x00-\xff]注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)匹配空白行的正则

2014-01-28 15:58:02 652

转载 U盘安装Ubuntu系统

一,U盘制作Ubuntu官方中文译名为友帮拓,是一款开源免费的linux操作系统。与其他的linux操作系统不同之处在于Ubuntu的软件包清单只包含那些高质量的重要应用程序,因此深受广大linux用户的喜爱,那么ubuntu怎样安装呢?下面就跟小编一起来看看怎么用u盘安装ubuntu系统(因为现在很多的台式电脑已经没有光驱了)。工具/原

2014-01-05 17:31:11 844

转载 C++ 多态与重载

一.多态多态(Polymorphism)按字面的意思就是“多种形状”。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4 编程技术内幕”)。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态性在Object Pa

2013-12-12 11:15:24 786

转载 C++ 多态

C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。  多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。  C++多态性是通过虚函数来实现的,虚函数允许子类重新定

2013-12-12 11:14:01 684

转载 Mysql 存储过程

一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。        存储过程通常有以下优点:       (1)存储过程在服务器端运行,执行速度快。       (2)存储过程执行一次后,其执行规划就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能。      

2013-12-10 16:12:18 2031

转载 C语言嵌入正则表达式

标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能,其中最著名的当数Philip Hazel的Perl-Compatible Regular Expression库,许多Linux发行版本都带有这个函数库。C语言处理正则表达式常用的函数有regcomp()、regexec()、regfree()和regerror(),一般分为三个步骤,如下所示:

2013-12-03 11:11:52 702

转载 strcpy & memcpy

注意:如果需要拷贝包含'\0'字符的字符串时,使用memcpystrcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy

2013-11-28 17:46:29 625

转载 字符串 sizeof & strlen

1. 以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符,如在代码中写"abc",那么编译器帮你存储的是"abc\0".2. 字符串直接量作为字符指针的初始值   "hello"是一个字符串直接量,编译器将其作为const char*处理,与之相关联的内存空间位于内存的只读部分,即允许编译器重用指向等价字符串直接量的引用以优化内存使用,即使程序  中使用了字符

2013-11-28 17:38:08 749

转载 DB Scan算法的分析与实现

聚类算法实现(二)DBSCAN     根据上面第二个数据集的簇的形状比较怪异,分簇结果应该是连起来的属于一个簇,但是k-means结果分出来很不如人意,所以这里介绍一种新的聚类方法,此方法不同于上一个基于划分的方法,基于划分主要发现圆形或者球形簇;为了发现任意形状的簇,用一个基于密度的聚类方法,这类方法将簇看做是数据空间中被低密度区域分割开的稠密对象区域,这一理念

2013-11-25 17:38:11 6753

转载 iptables 配置管理

linux下IPTABLES配置详解如果你的IPTABLES基础知识还不了解,建议先去看看.开始配置我们来配置一个filter表的防火墙.(1)查看本机关于IPTABLES的设置情况[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target       prot opt source           

2013-11-25 11:33:16 682

转载 PHP timestamp function

PHP语言中的函数有许多种,各种应用方式不同,实现的功能也不尽相同。我们在本文种为大家总结了PHP时间戳函数,希望能作为参考学习对象。探讨PHP动态图像创建技巧PHP获取随机数经验之谈如何正确运用PHP随机数类探讨PHP函数mt_srand使用技巧分享PHP加密扩展库Mcrypt安装及应用技巧一,PHP时间戳函数获取指定日期的unix时间戳 st

2013-11-20 12:57:08 9639

转载 regular expression grammer

语法表达式说明.任何单个字符,用作换行符 (\n) 以外的任何单个打印或非打印字符的通配符。例如,正则表达式 c.t 可匹配 cat、c t、cot 等字符串,但不能匹配 cost。在本例中,句号 (.) 是一个代表单个字符的通配符。它出现在字母“c”和“t”之间,因此字符“c”和“t”之间的任何单个字符都与表达式匹配 - 即使是空格

2013-11-19 13:15:21 1060

转载 Datatype length in mysql

M indicates the maximum display width for integer types. For floating-point and fixed-point types, M is the total number of digits that can be stored (the precision). For string types, M is the

2013-11-18 19:26:02 862

原创 Try Catch 3

Catch模块里面的内容如果没有包含return等结束关键字,Catch模块里面的内容执行完成后,会回退到Catch模块外层继续执行://下面的代码不会输出 Back in main....      cout     //定义一个try block,它是用一对花括号{}所括起来的块作用域的代码块    try     {     cout     //这里抛出一个异常

2013-11-17 01:33:32 539

转载 Try Catch --2

C++里try,catch,throw的用法#include #include  using namespace std; class Person { private: int age; string name; public: void setAge(int); void setName(string); }; class Error

2013-11-17 01:17:03 577

转载 Try Catch block

选择异常处理的编程方法的具体原因如下:1、 把错误处理和真正的工作分开来;2、 代码更易组织,更清晰,复杂的工作任务更容易实现;3、 毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了;4、 由于C++中的try catch可以分层嵌套,所以它提供了一种方法使得程序的控制流可以安全的跳转到上层(或者上上层)的错误处理模块中去。(不同于return语句,异常处理的控制流

2013-11-16 00:52:18 4236 2

转载 va_start和va_end使用详解

本文主要介绍va_start和va_end的使用及原理。  在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。  介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理: 1.在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表void foo(..

2013-09-20 00:42:46 668

转载 What happens when I disable SSID Broadcast? Am I more secure?

You really CAN NOT turn off the SSID field in the beacon. The SSID is a mandatory to send field in the BEACON and PROBE RESPONSE. So for systems that did not have the concept of an SSID, they allowe

2013-09-16 00:35:18 1025

转载 mysql 字符串操作

感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用。 函数: 1、从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract from my_content_t 2、从右开始截取字符串 ri

2013-08-23 20:26:23 893

转载 Group_Concat的用法

GROUP_CONCAT()是MySQL数据库提供的一个函数,通常跟GROUP BY一起用,具体可参考MySQL官方文挡:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat。语法:GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER

2013-08-23 19:52:53 666

转载 共享内存操作

shmget shmat和shmdt 基本内容 linux网上基本都是这个例子,这个写的最详细了,就转来了,可以看看。。不夺人之功劳,大家可以看看这个网址:http://blog.csdn.net/heanyu/article/details/6239459要使用共享内存,应该有如下步骤: 1.开辟一块共享内存 shmget() 2.

2013-08-09 09:35:00 736

转载 Int 与uin的转换

int与uint转换过程中值的变化  2011-03-21 11:49:44|  分类: asp.net|字号 订阅int类型的数据转化为uint类型:因为int是带符号的类型,当int是正数时,int类型数据转化为uint时不发生改变。当int是负数时,int类型数据转化为uint类型时,值就要发生变化。但转化的过程并不是去掉前

2013-08-08 11:40:21 2426

转载 STL中的vector_map

Effective STL中说过,std::map 是一个比较通用的实现,如果你注重效率的话,Hash容器 是个更好的选择,如果你的操作,主要是(先插入数据,查找,最后删除),那么用vector来实现map,效率也会更高。 从效率的角度看,map只适合那种,需要不断插入和删除,期间夹杂查找的情形。  vector_map 为什么比map效率高  vector是线性存储,map是二叉树树形,

2013-08-03 14:49:03 1262

转载 C++数组做形参 一

在学习过程中遇到以下问题:Access Violation :非法访问unhandled exception:程序发生异常并且没有处理1.用数组名做函数参数f(int arr[],int n)①调用时采用:f(arr,10)由于数组名代表的是数组的地址,所以用数组名做参数的时候,其实是进行一个地址传递,会改变整个数组的值,所以①式也可以等价于:f(int *arr,in

2013-07-31 12:59:08 1177

WiMAX标准最新版本

介绍了802.16m标准的最新状态以及最新的内容。

2011-02-20

Cisco WLAN 应用方案

介绍Cisco公司详细的WLAN 应用方案,资料有误,请勿下载。。

2011-02-20

无线Mesh网络成功案例资料

介绍了基于WLAN Mesh Network建设校园无线网络的成功案例,并介绍了一些实际的应用场景。

2010-12-27

802.21标准-MIH详细描述

该标准详细地介绍了802.21标准组所提出的MIH协议,基于该协议如何实现多模终端在异构网络之间实现无缝切换的相关机制以及信令交互流程。该标准是解决目标多种无线网络技术整合较优的解决方案。

2009-10-06

控制台通信程序

最简单的控制台通信程序

2007-07-31

空空如也

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

TA关注的人

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