毕业第一年
xiaoshengqdlg
这个作者很懒,什么都没留下…
展开
-
iperf测试UDP带宽
使用iperf的-b参数可以指定带宽大小,请注意这个指定的带宽大小并不是要获得带宽数据,需要不断在client端增加带宽值,直到server端出现轻微的丢包为止,此时server端显示的带宽就是被测系统的吞吐量。原创 2014-04-29 18:43:06 · 16179 阅读 · 1 评论 -
#ifdef #ifndef #define,#endif解析
我们在看一些开源的源代码的时候,经常会看到如下情景:# if defined(_PTHREADS) && !defined(_NOTHREADS)# define __STL_PTHREADS# endif # if defined(_UITHREADS) && !defined(_PTHREADS) && !defined(_NOTHREADS)# def转载 2014-04-23 13:47:19 · 738 阅读 · 0 评论 -
select函数用法
原型int select(int nfds,fd_set* readfds,fd_set* writefds,fd_set* exceptfds,const struct timeval* timeout);nfds:本参数忽略,仅起到兼容作用。 readfds:(可选)指针,指向一组等待可读性检查的套接口。 writefds:(可选)指针,转载 2014-04-24 14:37:19 · 499 阅读 · 0 评论 -
工作笔记
2014.04.9wireshark分析TCP数据包,在Transmission control protocol中的sequence number就是TCP数据报中的序列号,acknowledgment number就是TCP数据报中的确认号。序列号表示该TCP数据报中的第一个数据的序号。注意:tcp数据报中的每个数据都按顺序编号,但是只在TCP数据报序列号那一段显示第一个数据的序列号。确认原创 2014-04-09 10:39:28 · 480 阅读 · 0 评论 -
(转)C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显转载 2014-04-11 14:11:29 · 355 阅读 · 0 评论 -
vim下ctags的用法
vim+ctags用法(转载)(2012-08-29 10:44:46)转载▼标签:linuxvimctgs杂谈分类:linux[/home/brimmer/src]$ ctags -R"-R"表示递归创建,也就包括源代码根目录下的所有子目录下的源程序。"tags"文件中包括这些对象的列表:l转载 2014-04-11 13:40:07 · 503 阅读 · 0 评论 -
linux下ftp命令详解
ftp服务器在网上较为常见,Linux ftp命令的功能是用命令的方式来控制在本地机和远程机之间传送文件,这里详细介绍Linux ftp命令的一些经常使用的命令,相信掌握了这些使用Linux 进行ftp操作将会非常容易。Linux ftp命令的一般格式如下:$ ftp 主机名/IP其中“主机名/IP”是所要连接的远程机的主机名或IP地址。在命令行中,主机名属于选项,如果指定转载 2014-04-29 12:46:28 · 501 阅读 · 0 评论 -
工作笔记 nanosleep()函数
原型:#include int nanosleep(const struct timespec *req, struct timespec *rem);说明:此函数将调用进程挂起,直到 req 里所指的时间结束。req 是 struct timespec 结构体的指针。struct timespec 结构体定义如下:struct timespec {原创 2014-04-30 12:55:42 · 1166 阅读 · 0 评论 -
工作笔记(2014.03.25)
一个路由器可以有多个接口,这个接口与路由器板子上的物理接口不是一一对应的,比如路由器的4个LAN口是物理口是同一个太网接口比如eth(0-9),本地回环接口lo,wifi接口ra0。每个接口对应一个物理网卡。(在s1500上有这样一种情况:eth2接口对应的是路由器上的五个物理接口,包含四个LAN口和一个WLAN口,而eth2.1代表的是WLAN口,eth2..2对应的是LAN口)原创 2014-03-25 13:34:25 · 494 阅读 · 0 评论 -
getsockname函数
用来返回套接字的本地IP地址。转载 2014-04-24 13:14:05 · 5019 阅读 · 0 评论 -
C语言中不同类型的结构体的指针间可以强制转换
C语言中不同类型的结构体的指针间可以强制转换,很自由,也很危险。只要理解了其内部机制,你会发现C是非常灵活的。一.结构体声明如何内存的分布, 结构体指针声明结构体的首地址, 结构体成员声明该成员在结构体中的偏移地址。 变量的值是以二进制形式存储在内存中的,每个内存字节对应一个内存地址,而内存存储的值本身是没有整型,指针,字符等的区别的,区别的存在转载 2014-04-22 17:34:39 · 2696 阅读 · 0 评论 -
in_addr与sockaddr
123structin_addr { in_addr_t s_addr;};结构体in_addr 用来表示一个32位的IPv4地址.in_addr_t 一般为 32位的unsigned int,其字节顺序为网络顺序(network byte ordered),即该无符号整数采用大端字节转载 2014-04-17 09:26:46 · 979 阅读 · 0 评论 -
调试make
大部分 UNIX® 和 Linux® 程序都是通过运行 make 来编译的。make 工具会读取一个包含指令的文件(这个文件的名字通常都是 makefile 或 Makefile,不过后文中我们统一称之为 “makefile”),并执行各种操作来编译程序。在很多编译过程中,makefile 自己完全是由其他软件生成的;例如,autoconf/automake 程序就用来开发编译程序。其他程序可转载 2014-04-23 11:51:30 · 667 阅读 · 0 评论 -
gcc参数详细介绍
[介绍] gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] 4.连接目标代码,生成可执行程序[链接器ld] [参数详解] -x l转载 2014-04-23 10:19:48 · 527 阅读 · 0 评论 -
C语言函数sscanf()的用法
在我的学习过程中,从文件读取数据是一件很麻烦的事,所幸有sscanf()函数。 C语言函数sscanf()的用法sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( string str, string fmt, mixed var1, mixed var2 ... ); int scanf( const c转载 2014-04-22 14:32:08 · 438 阅读 · 0 评论 -
configure文件的生成
作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。 在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样转载 2014-04-23 14:06:24 · 1814 阅读 · 0 评论 -
用gdb调试软件
使用GDB一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点。如:$gcc -g -Wall hello.c -o hello$g++ -g -Wall hello.cpp -o hello如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行转载 2014-04-23 13:10:11 · 676 阅读 · 0 评论 -
Linux getopt用法
最近做cache lab 用到了getopt函数, 用man 3 getopt查看了下用法, 做个总结.描述:getopt函数是用来解析命令行参数的, 以‘-’或‘--’开头的参数为选项元素,除去‘-’或‘--’的选项元素为选项字符。如果getopt函数被重复调用,则它将会依次返回每个选项元素中的选项字符。使用getopt函数需要包含以下头文件:#inclu转载 2014-04-15 10:28:46 · 747 阅读 · 0 评论 -
herror()错误信息打印
herror()Print the message associated with the value of h_errno to standard errorSynopsis:#include void herror( const char* prefix );Arguments:prefixNULL, or a string that yo转载 2014-04-16 17:01:33 · 1514 阅读 · 0 评论 -
struct socket结构体详解
用户使用socket系统调用编写应用程序时,通过一个数字来表示一个socket,所有的操作都在该数字上进行,这个数字称为套接字描述符。在系统调用 的实现函数里,这个数字就会被映射成一个表示socket的结构体,该结构体保存了该socket的所有属性和数据。在内核的协议中实现中,关于表示 socket的结构体,是一个比较复杂的东西,下面一一介绍。 struct socket。转载 2014-04-15 16:03:56 · 809 阅读 · 0 评论 -
SSH原理与运用:远程登录
作者: 阮一峰日期: 2011年12月21日SSH是每一台Linux电脑的标准配置。随着Linux设备从电脑逐渐扩展到手机、外设和家用电器,SSH的使用范围也越来越广。不仅程序员离不开它,很多普通用户也每天使用。SSH具备多种功能,可以用于很多场合。有些事情,没有它就是办不成。本文是我的学习笔记,总结和解释了SSH的常见用法,希望对大家有用。虽然本文内容只涉及初级应转载 2014-03-20 19:08:37 · 530 阅读 · 0 评论 -
gethostbyname()函数说明
gethostbyname()函数说明——用域名或主机名获取IP地址 包含头文件 #include #include 函数原型 struct hostent *gethostbyname(const char *name); 这个函数的传入值是域名或者主机名,例如"www.google.cn"等等。传出值,是一个hostent转载 2014-04-16 16:42:43 · 472 阅读 · 0 评论 -
Linux下getsockopt/setsockopt 函数说明
from:http://blog.csdn.net/xioahw/article/details/4056514【 getsockopt/setsockopt系统调用】 功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层转载 2014-04-17 09:42:16 · 400 阅读 · 0 评论 -
TCP之深入浅出send和recv(经典)
摘要 send、recv的缓冲区与tcp流量控制之间的关系目录[-]需要理解的3个概念1. TCP socket的buffer2. 接收窗口(滑动窗口)TCP连接建立之时的收端的初始接受窗口大小是14600,细节如图2所示(129是收端,130是发端) 图 2转载 2014-04-18 10:35:25 · 836 阅读 · 0 评论 -
面向报文UDP和面向字节流TCP的区别
面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这也就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。面向字节流的话,虽然应用程序和TCP的交互是一次一个数据块(转载 2014-04-18 11:02:18 · 1618 阅读 · 0 评论 -
linux 的ifconfig命令
许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改。Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config)。通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。依赖于ifconfig命令中使用一些选项属性,ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改转载 2014-03-20 18:44:09 · 835 阅读 · 0 评论 -
TCP交互数据流与成块数据流 笔记
TCP交互数据流:原创 2014-04-21 15:34:48 · 1193 阅读 · 0 评论 -
关于字符数字和整形数字 ASCII
int main(){ char i = 2; printf("i == %d",i); return 1;}输出结果是:i == 2原创 2014-04-22 13:25:47 · 828 阅读 · 0 评论 -
关于字符数字和整形数字
关于字符数字和整形数字int main(){ char i = '2'; printf("i == %c",i); return 1;}输出结果为:i原创 2014-04-22 13:32:29 · 728 阅读 · 0 评论 -
shell自定义变量中的整形运算
整型运算 我们可以通过declare -i来定义整型变量。在上一次的学习中,使用了$(($OPTIND - 1))来进行计算$((…))是用于进行整型运算的。在$((…))中,我们并不需要对变量加上$来表示它的值,也不需要预先声明这个变量是个整型。在双引号下也能进行有效运算。下面是个例子:#declare -i aa=13 aa=13 echo '$((aa-3))'转载 2014-04-08 14:34:40 · 2789 阅读 · 0 评论 -
UDP的connect函数
from对于linux网络编程,我们都知道UDP是发送数据报,不是面向连接的协议,也就是它只是把数据报发送到链路层,至于能不能到达目的IP和端口,他都无能为力了。而且,我们只要在sendto函数中指定你要发送的端口和IP地址就可以了,我们不用绑定端口和IP。但是,如果对UDP进行connect函数的调用,会发生什么现象呢?那么,connect函数是连接外部的IP和端口,一般转载 2014-04-22 16:28:58 · 503 阅读 · 0 评论 -
linux系统监控 mpstat命令
1.SYNOPSIS mpstat [ -P { cpu | ALL } ] [ -V ] [ interval [ count ] ] 2.用法 mpstat -V 显示mpstat版本信息 mpstat -P ALL 显示所有CPU信息 mpstat -P n 显示第n个cup信息,n为数字,计数从0开始 mpstat转载 2014-04-14 18:26:14 · 656 阅读 · 0 评论