随笔分类 - 网络
recv函数返回值说明
摘要:recv函数 int recv( SOCKET s, char FAR *buf, int len, int flags); 不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据。 该函数的第一个参数指定接收端套接字描述符; 第二个参数指明一个缓冲区,该缓冲区用来存放recv函数
阅读全文
深入浅出TCP之listen
摘要:原文:http://blog.chinaunix.net/uid-29075379-id-3858844.html int listen(int fd, int backlog); 有几个概念需要在开头澄清一下 TCP socket分两种,监听socket和传输socket两种 监听socket:负
阅读全文
unp第七章补充之socket tcp 产生 rst响应的情况
摘要:socket tcp 产生 rst响应的情况(属于硬错误) 1. syn发送到服务器主机,但是目的端口并未运行。则产生一个ECONRFUSED错误。客户端立即返回。比如telnet 192.168.1.55 8889,条件:55主机在局域网上并且可达(也可以换成可以到达的网络ip地址),但是8889
阅读全文
unp第七章补充之TCP半开连接与半闭连接
摘要:半打开(Half-Open)连接和半关闭(Half-Close)连接。TCP是一个全双工(Full-Duplex)协议,因此这里的半连接"半"字就是相对于全双工的"全"来说的。 全双工传输 英文写法是:Full-Duplex Transmissions 是指交换机在发送数据的同时也能够接收数据,两者
阅读全文
用户级线程和内核级线程
摘要:1.内核级线程:(1)线程的创建、撤销和切换等,都需要内核直接实现,即内核了解每一个作为可调度实体的线程。(2)这些线程可以在全系统内进行资源的竞争。(3)内核空间内为每一个内核支持线程设置了一个线程控制块(TCB),内核根据该控制块,感知线程的存在,并进行控制。在一定程度上类似于进程,只是创建、调
阅读全文
TCP状态转换图、滑动窗口、半连接状态、2MSL
摘要:一、TCP状态转换图 下图对排除和定位网络或系统故障时大有帮助,也帮助我们更好的编写Linux程序,对嵌入式开发也有指导意义。 先回顾一下TCP建立连接的三次握手过程,以及关闭连接的四次握手过程: 1、建立连接协议(三次握手) (1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中
阅读全文
理解tcp顺序释放操作和tcp的半关闭
摘要:Shutdown的调用 在关闭socket的时候,可以有两种方式closesocket和shutdown,这两个函数的区别在什么地方呢? #include <sys/socket.h> /*UNIX*/ #include<winsock.h> /*Windows*/ int shutdown(int
阅读全文
exec函数族的作用与讲解
摘要:apue看到第八章,对exec函数族的理解一直都很混乱,总觉得不对劲儿,其实不能理解的先暂时跳过,看到后面,再结合实例也就慢慢的理解了。 以下内容转自:http://www.cppblog.com/prayer/archive/2009/04/15/80077.html 也许有不少读者从本系列文章一
阅读全文
fork函数
摘要:一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和
阅读全文