- 博客(10)
- 资源 (2)
- 收藏
- 关注
原创 tcp和udp能否发送0字节的数据包
最近去一家牛逼的公司面试,被问到tcp和udp能否发送0字节的数据包,结果会怎样,可惜我孤陋寡闻没答上来,回来赶紧测试,发现结果如下:1、tcp和udp都能发送0字节的数据包,windows下通过GetLastError查看返回值为02、tcp发送0字节的数据包后,接收方调用recv不会接收到该数据包3、udp发送0字节的数据包后,接收方调用recvfrom能够接收到该数据包
2011-07-29 10:11:01 5000 4
转载 STL中map实现技术
红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由Rudolf Bayer发明的,他称之为"对称二叉B树",它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获
2011-07-20 22:53:29 765
转载 UDP编程中的connect
标准的udp客户端开了套接口后,一般使用sendto和recvfrom函数来发数据,最近看到ntpclient的代码里面是使用send函数直接法的,就分析了一下,原来udp发送数据有两种方法供大家选用的,顺便把udp的connect用法也就解释清楚了。方法一: socket---
2011-07-20 10:27:53 582
转载 linux的线程同步机制
互斥锁尽管在Posix Thread中同样可以使用IPC的信号量机制来实现互斥锁mutex功能,但显然semphore的功能过于强大了,在Posix Thread中定义了另外一套专门用于线程同步的mutex函数。1. 创建和销毁有两种方法创建互斥锁,静态方式和动态方式。POSIX
2011-07-19 10:58:49 657
转载 linux中waitpid系统调用
对于进程的一生可以用一些形象的比喻作一个小小的总结:随着一句fork,一个新进程呱呱落地,但它这时只是老进程的一个克隆。然后随着exec,新进程脱胎换骨,离家独立,开始了为人民服务的职业生涯。人有生老病死,进程也一样,它可以是自然死亡,即运行到main函数的最后一个”}”,从容地
2011-07-19 09:29:04 3399 1
转载 cdecl、stdcall、fastcall函数调用约定区别
论函数调用约定 在C语言中,假设我们有这样的一个函数: int function(int a,int b) 调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:
2011-07-18 10:57:12 430
转载 nagle算法在网络编程的作用
TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认。为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据。(一个连接会设置MSS参数,因此,TCP/IP希望每次都能够以MSS尺寸的数据块来发送数据)。Nag
2011-07-07 11:14:22 1074
转载 使用libcurl提交POST请求
最近在学习libcurl,并利用它提交POST请求,可是返回的响应总是无从验证该次POST请求是否成功提交了。1. 先看下根据firebug提交的一次成功的请求,这里以login我喜欢上的xiami为例,嘻嘻~ 1.1 本次POST请求的HTTP交互 1.2
2011-07-06 10:28:53 41043 9
转载 socket之select函数
原型int select(int nfds,fd_set* readfds,fd_set* writefds,fd_set* exceptfds,const struct timeval* timeout);nfds:本参数忽略,仅起到兼容作用。 read
2011-07-05 10:52:45 809
原创 tcp三次握手
如图所示,客户端通过给服务器发送一个SYN(同步)段开始建立连接。这个段不仅包含了某些连接参数如将要接受的最大段大小(maximum segment size, MMS)以及出事接收窗口的大小,而且还制定客户端为将要传送的数据使用的第一个序列号。服务器响应传送自己的SYN段并附带对客户端的SYN消息的确认ACK给客户端。最后,客户端发送确认服务器SYN的ACK给服务器,连接就结束了。
2011-07-01 16:33:00 466
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人