- 博客(16)
- 收藏
- 关注
原创 面经
-----------------------------------------虚函数的优缺点问题就是在子类很少覆盖基类函数实现的时候内存开销太大,再加上象界面编程这样子类众多的情况(大概是都不覆盖)性能分析:使用了虚函数之后带来的开销:1、继承体系中每一个类的虚函数表空间开销。2、每一个对象的虚函数表指针空间开销。3、每一次生成一个类都要去初始化虚函数表
2017-04-27 21:10:28
528
转载 linux编程之GDB调试
GDB是一套字符界面的程序集,可以用它在linux上调试C和C++程序,它提供了以下的功能:1 在程序中设置断点,当程序运行到断点处暂停2 显示变量的值,可以打印或者监视某个变量,将某个变量的值显示出来3 单步执行4 运行时修改变量的值5 跟踪路径6 线程切换等等 下面以以下程序为例当我们要使用GDB进行程序的
2017-02-02 11:56:50
445
原创 进程与线程的各种锁分析总结
进程的文件读写锁学习:http://blog.youkuaiyun.com/anonymalias/article/details/9197641http://blog.chinaunix.net/uid-27177626-id-3791049.html线程的读写锁学习:http://blog.youkuaiyun.com/callinglove/article/details/46646369
2017-02-02 01:04:44
2810
转载 linux c学习笔记----共享内存(shmget,shmat,shmdt,shmctl)
shmgetint shmget(key_t key, size_t size, int flag);key: 标识符的规则size:共享存储段的字节数flag:读写的权限返回值:成功返回共享存储的id,失败返回-1key_t key----------------------------------------------- key标识共享内存的键值:
2017-01-31 19:33:52
634
原创 多进程与多线程与同步的故事
首先先介绍一个无关的对象,可以用来获取毫秒级的时间。有两个函数int gettimeofday(struct timeval *tv, struct timezone *tz);int settimeofday(const struct timeval *tv , const struct timezone *tz);而timeval和timezone的结构体定义是这样
2017-01-25 22:45:28
793
原创 linux文件的一些操作
重命名文件可以用mv移动到同一目录,换一个名字。对文件夹或目录操作一般要加-r选项。创建文件夹【mkdir】 一、mkdir命令使用权限 所有用户都可以在终端使用 mkdir 命令在拥有权限的文件夹创建文件夹或目录。 二、mkdir命令使用格式 格式:mkdir [选项] DirName 三、mkdir命令功
2017-01-25 21:44:02
326
转载 linux上GIT的使用
(转载过来方便查阅)# smbclient -U mtk -L 192.168.64.64 -U 后面跟的是服务器的名字,即mtk -L 后面中的是服务器的IP,即192.168.64.64 Enter public's password: ---------如果有密码这里需要密码(服务器的密码)[cpp] view
2017-01-25 11:35:12
412
原创 UDP的分析与UDP一次性能发多大的数据
UDP的过程比较简单,当只有一方进行了bind显示绑定端口,则这一方(假设为A)要先作为接收方接受信息,因为不知道对方(假设为B)的端口号是多少。而对方作为发送方进行发送数据通信的时候,底层会为它自动随机分配一个端口号,然后A方则能从&addr中获取B的端口,从而能够紧接着进行发送信息。当然我们也可以对A,B双方都进行显示的bind来进行绑定端口。#include
2017-01-17 12:04:58
4213
转载 TCP、UDP、IP 协议分析
转载: http://blog.chinaunix.net/uid-26833883-id-3627644.html互连网早期的时候,主机间的互连使用的是NCP协议。这种协议本身有很多缺陷,如:不能互连不同的主机,不能互连不同的操作系统,没有纠错功能。为了改善这种缺点,大牛弄出了TCP/IP协议。现在几乎所有的操作系统都实现了TCP/IP协议栈。TCP/IP
2017-01-16 23:32:28
486
原创 有关tcp字段的详解
TCP首部字段有必选字段20字节,另外有40字节的可选字段必选字段如下:源端口(Source Port),目标端口(Destination Port) 各2字节源端口号,标识主机上发起传送的应用程序;目的端口标识主机上传送要到达的应用程序。源端和目的端的端口号,用于寻找发端和收端应用进程。这两个值加上I P首部中的源端I P地址和目的端I P地址唯一
2017-01-15 16:55:11
15847
转载 socket编程中write、read和send、recv之间的区别
一旦,我们建立好了tcp连接之后,我们就可以把得到的fd当作文件描述符来使用。由此网络程序里最基本的函数就是read和write函数了。ssize_t write(int fd, const void*buf,size_t nbytes);write函数将buf中的nbytes字节内容写入文件描述符fd.成功时返回写的字节数.失败时返回-1. 并设置errno变量. 在网络程序中,
2017-01-15 15:17:25
616
原创 TCP全连接队列和半连接队列已满之后的连接建立过程抓包分析
在进行client不断的对server端进行connect的过程中发现下面这个状态,而且循环6w次的链接只进行了2W多次就出错了。于是去查找了下原因:Linux内核协议栈为一个tcp连接管理使用两个队列,一个是半链接队列(用来保存处于SYN_SENT和SYN_RECV状态的请求),一个是全连接队列(accpetd队列)(用来保存处
2017-01-14 11:50:04
3077
原创 关于socket中被动方的close的执行
如果在主动方调用了close(socket),被动方没有及时相应的执行close,则会出现异常。。比如我在被动方的close前加一句键盘输入fgets然后进行send来进行停顿。。则会抓到如下包:主动方(client)执行close之后,会抓到如下两个包,此时主动方是FIN_WAIT2,被动方是CLOSE_WAIT:23:23:48.335377 IP localhost.43152
2017-01-13 23:26:02
1228
转载 解决创建socket时Too many open files问题
转载:http://blog.chinaunix.net/uid-10666692-id-1759617.html首先按照网络上的指导操作修改如下内容(需要重启):ulimit -n 65535(可以写入启动文件/etc/rc.d/rc.local中)/etc/sysctl.conf : fs.file-max = 65535/etc/security/limits.con
2017-01-13 12:26:56
1705
转载 TCP协议中FLAG的含义
TCP FLAG 标记基于标记的TCP包匹配经常被用于过滤试图打开新连接的TCP数据包。TCP标记和他们的意义如下所列:* F : FIN - 结束; 结束会话* S : SYN - 同步; 表示开始会话请求* R : RST - 复位;中断一个连接* P : PUSH - 推送; 数据包立即发送* A : ACK - 应答* U : URG -
2017-01-12 12:32:25
1026
原创 tcp过程
开始过程:A向B发送SYN包,并给定seq=一个比较大的随机数B收到后返回ACK+SYN包,seq=楼上+1.A收到后返回一个ack包。ack=1.。表示下次接受的序号从1开始。结束过程:A发出FIN-ACK后,进入FIN-WAIT-1状态,等待B的确认。B发出ACK后,进入CLOSE-WAIT状态。此时TCP连接处于半关闭状态,即A没有数据发给B了,但
2017-01-11 20:32:50
972
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人