Steve Sun的专栏

撸呀么撸代码~

TCP三次握手及其背后的缺陷

概述 总结一下TCP中3次握手过程,以及其原生的缺陷 引起的SYN Flood的介绍 【1】TCP三次握手 【2】SYN Flood 1、TCP连接建立——三次握手 几个概念: 【1】seq:序号,占4个字节,范围[0,4284967296],由于T...

2015-08-10 00:26:54

阅读数 5909

评论数 1

阻塞、非阻塞、异步、同步以及select/poll和epoll

针对IO,总是涉及到阻塞、非阻塞、异步、同步以及select/poll和epoll的一些描述,那么这些东西到底是什么,有什么差异? 一般来讲一个IO分为两个阶段: 等待数据到达把数据从内核空间拷贝到用户空间 现在假设一个进程/线程A,试图进行一次IO操作。 A发出IO请求,...

2015-08-06 01:15:47

阅读数 296

评论数 0

轻松搞定面试中的二叉树题目

版权所有,转载请注明出处,谢谢! http://blog.csdn.net/walkinginthewind/article/details/7518888 树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子...

2015-07-29 00:54:42

阅读数 410

评论数 0

c++题目整理

题1:   题2:   题3: 以下程序的输出是 class Base { public: Base(int j): i(j) {} virtual~Base() {} void func1() { i *= 10; ...

2015-07-18 18:29:01

阅读数 2476

评论数 0

linux下进程间通信的几种主要方式简介

linux下进程间通信的几种主要手段简介: 管道(Pipe)及有名管道( mkpipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信; 信号(Signal):信号是比较复杂的通信方式,用于通知...

2015-07-05 21:35:05

阅读数 697

评论数 0

malloc与new的区别

1.malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存 2.对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由malloc...

2015-05-04 23:43:53

阅读数 323

评论数 0

各种排序算法

快速排序: void Qsort(int a[], int low, int high){ if(low <= high) return; int first = low, last = high; int key = a[first]; while(first < las...

2015-04-06 17:10:49

阅读数 429

评论数 0

最长公共连续串问题

#include #include using namespace std; int a[100][100]; int getSubStringLen(string query, string text){ int max = 0; int m = query.length(), n =...

2015-04-02 14:43:08

阅读数 353

评论数 0

反转句子

加句子反转, 例如将nice to meet you 反转成为 you meet to nice void reverse(char *p, char *q){ while(p < q){ char tmp = *p; *p++ = *q; *q-- = tmp; } } ...

2015-04-02 14:16:44

阅读数 2184

评论数 0

最大递增子序列LIS

1、一串数据的最大递增序列,输出个数 例如 4,2, 6,3, 1,5, 最大递增序列为, 2,3, 5,输出3 #include using namespace std; #define MAXN 100 int list[MAXN], dp[MAXN]; int max(int a...

2015-04-02 00:27:47

阅读数 797

评论数 0

反转单链表

struct Node{ int data; struct Node *next; }; Node* ReverseList(Node *head){ Node *pre, *cur, *next; if(head == NULL || head->next == NULL) ...

2015-03-24 20:49:44

阅读数 533

评论数 0

TCP/IP三次握手与四次挥手

一、TCP报文格式         TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图: 图1 TCP报文格式         上图中有几个字段需要重点介绍下:         (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方...

2015-03-08 14:41:37

阅读数 595

评论数 0

腾讯2016研发工程师编程题

1、生成格雷码 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。 给定一个整数n,请返回n位的格雷码,顺序为从0开始。 测试样例: 1 返回:["0","1&q...

2017-06-21 23:55:10

阅读数 348

评论数 0

腾讯2017暑期实习生编程题

小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。 你能帮帮小Q吗? 输入描述: 输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000. 输出描述: 对于每组数据,输出移位...

2017-05-22 00:01:14

阅读数 450

评论数 0

shell脚本学习笔记

第二章: $cat > nusers who | wc -l ^D chmod +x nusers ./nusers

2017-02-11 15:48:02

阅读数 250

评论数 0

sed命令详解

sed是stream editor的简称,也就是流编辑器。它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有...

2017-02-09 15:27:35

阅读数 375

评论数 0

[Shell学习笔记] 切分文件名提取文件扩展名或提取文件名

有些脚本要根据文件名进行各种处理,有时候需要保留文件名抛弃文件后缀,也有时候需要文件后缀不要文件名,这类提取文件部分的操作使用shell的内建功能就能实现。需要用到的几个操作符有:%、%%、#、##。 从右向左匹配 :% 和 %% 操作符的示例 #!/bin/bash #提取文件名,删除后缀。 ...

2016-10-09 17:09:10

阅读数 3604

评论数 0

shell学习记录

#!/bin/sh 变量名和等号之间不能有空格: your_name="runoob.com" 使用一个定义过的变量,只要在变量名前面加美元符号即可: your_name="qinjx" echo $your_name echo ${your_name...

2016-08-15 20:34:31

阅读数 276

评论数 0

nohup命令

在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台: /usr/local/mysql/bin/mysqld_safe –user=mysql &。可是有很多程序并不想mysqld一样,这样...

2016-08-12 17:13:55

阅读数 1062

评论数 0

GDB调试

GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。 一般来说,GDB...

2015-12-19 23:30:35

阅读数 1153

评论数 0

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