- 博客(8)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 I/O多路复用之select
I/O多路复用:I/O多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备就绪后,它就通知该进程的应用程序,应用程序就可以马上完成响应的I/O操作,而不需要等待系统完成I/O操作,这样大大提高了效率。I/O多路复用实质上是实现了单线程来处理并发请求。 系统为我们提供了多个函数来实现多路复用输入/输出模型,例如:select,poll,epoll,这里我们先讲select模型。一、select
2017-03-30 16:39:49 1275
原创 socket编程之实现一个简单的TCP通信
一、理解socket1、socket即为套接字,在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一的标识网络通讯中的一个进程,“IP地址+TCP或UDP端口号”就为socket。 2、在TCP协议中,建立连接的两个进程(客户端和服务器)各自有一个socket来标识,则这两个socket组成的socket pair就唯一标识一个连接。 3、socket本身就有“插座”的意思,因此用来形容
2017-03-29 18:33:01 93470 2
原创 Shell 字符串截取方法
一、运算符截取 假设现在有字符串var=http://www.mmm.cn/123.html# 和 ## 号截取字符串(删左边留右边)# :${var#*string}解释:从左边开始,删除第一个string以及左边的所有字符。var为变量名,#表示截取的运算符。## :${var##*string}解释:从左边开始,删除最后一个string
2017-03-29 09:20:51 34246 1
原创 端口号的分类
端口:在网络技术中,端口有两层意思:一个是物理端口,即物理存在的端口,如:集线器、路由器、交换机、ADSL Modem等用于连接其他设备的端口;另一个就是逻辑端口,用于区分服务的端口,一般用于TCP/IP中的端口,其范围是0~65535,,比如用于网页浏览服务的端口是80端口,用于FTP服务的是21端口。端口号:由于物理端口和逻辑端口数量较多,为了对端口进行区分,将每个端口进行了编号,即就是端
2017-03-10 20:43:16 8340 1
原创 TCP的连接建立与释放
TCP --- 传输控制协议报头格式:(1)源端口和目的端口:与UDP类似,TCP的分用是通过端口实现的。(2)序号:TCP是面向字节流的,在TCP连接中传送的字节流的每一个字节都是有顺序的,整个要传送的字节流的起始序号必须要在连接建立时设置。首部中的序号字段值表示本报文段的数据的第一个字节的序号。该字段也称为“报文段序号”。(3)确认号:是期望收到对方下一个报文段的第一个
2017-03-09 15:43:24 9176
原创 替换空格
题目:请实现一个函数,把字符串中的每个空格替换成”%20”。例如:输入”we are happy.”,则输出”we%20are%20happy.”思路分析: 我们比较替换之前与替换之后的字符串长度,很明显,字符串长度增加了4,所以,第一点,将”we are happy.”用一个字符指针指向肯定不可行,那么就应该将其放入一个数组中。其次我们就应该考虑如何输出想要的结果。 1.题目没有给出要求
2017-03-07 16:55:36 1244 3
原创 TCP中的四个计时器
TCP中的四个计时器包括重传计时器、坚持计时器、保活计时器、时间等待计时器重传计时器(Retransmission Timer):目的:为了控制丢失的报文段或者丢弃的报文段。这段时间为对报文段的等待确认时间。创建时间:在TCP发送报文段时,会创建对次特定报文段的重传计时器。可能发生的两种情况:在截止时间(通常为60秒)到之前,已经收到了对此特定报文段的确认,则撤销计时器;在截止时间
2017-03-06 12:52:28 13123
原创 Linux - 使用gdb调试多进程程序
gdb是Linux下一款调试器,常用来调试c/c++代码。对于多进程的程序,gdb是如何进行调试的呢?我们接下来一起学习:方法一:attach pid 利用该命令attach到子进程然后进行调试。为方便调试,可以sleep,这样有充分的时间进行调试。 方法二:gdb wrapper 专用于fork+exec模式,不用添加额外代码,但需要X环境支持(xterm/VNC)。 方法三:follow
2017-03-04 16:03:58 2064
哈夫曼实现文件压缩时的传参问题
2016-10-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人