`

listen和accept的套接字描述符有什么用

 
阅读更多

在阅读创建socketpair时发现不太理解socket中listen和accept函数的功能和差别,看了下面的描述,明白了。

 

When a SYN arrives from a client, TCP creates a new entry on the incomplete queue and then responds with the second segment of the three-way handshake: the server's SYN with an ACK of the client's SYN (Section 2.6). This entry will remain on the incomplete queue until the third segment of the three-way handshake arrives (the client's ACK of the server's SYN), or until the entry times out. (Berkeley-derived implementations have a timeout of 75 seconds for these incomplete entries.) If the three-way handshake completes normally, the entry moves from the incomplete queue to the end of the completed queue. When the process calls accept, which we will describe in the next section, the first entry on the completed queue is returned to the process, or if the queue is empty, the process is put to sleep until an entry is placed onto the completed queue.

There are several points to consider regarding the handling of these two queues.

The backlog argument to the listen function has historically specified the maximum value for the sum of both queues.

分享到:
评论

相关推荐

    C# 2.0 套接字编程实例初探.pdf

    然后就可以使用accept调用等待客户端发起连接,一般是阻塞等待连接,一旦有客户端发出连接,accept返回客户的地址信息,并返回一个新的socket描述符,该描述符与原先的socket有相同的特性,这时服务端就可以使用这个...

    C++开发基于TCPsocket实现的web服务器源码.zip

    4、当有连接到来时,调用accept函数,将客户端套接字与服务器套接字组成新的会话,并将会话添加到会话socket队列session中(用list实现); 5、从session中取出会话,接收并按照http协议分析客户端的请求报文,根据...

    基于TCP的C/S架构并发服务器

    4) accept(), 阻塞函数,阻塞等待客户端的连接请求,如果有客户端连接,则accept()函数返回,返回一个用于通信的套接字文件; 5) recv(), 接收客户端发来的数据; 6) send(), 发送数据; 7) close(), 关闭文件描述...

    客户服务器程序设计及实现.doc

    参数:s: 是由socket()调用返回的并且未作连接的套接字描述符(套接字号)。 其它:没有错误,bind()返回0,否则SOCKET_ERROR 地址结构说明: struct sockaddr_in { short sin_family;//AF_INET u_short sin_port;/...

    客户服务器实验报告.doc

    " "参数:s: 是由socket()调用返回的并且未作连接的套接字描述符〔套接字号〕。" "其它:没有错误,bind()返回0,否那么SOCKET_ERROR " "地址构造说明: " "struct sockaddr_in " "{ " "short sin_family;//AF_INET...

    网络编程教程,很好的一本写linux网络编程书,这是我上传的源码

     第十三章 UNIX域套接字和并发服务器的预创建技术  13.1 UNIX域套接字  13.1.1 UNIX域的地址结构  13.1.2 UNIX(套接字使用的示例  13.1.3 传递文件描述符  13.2 并发服务器的预创建技术  ...

    嵌入式系统设计与应用课程设计报告.doc

    //创建监听套接字描述符sockfd if(listen(sockfd,10)==-1) { perror("listen"); exit(1); } printf("listening....\n"); //服务器阻塞监听套接字,循环等待客户端程序连接 while(1) { sin_size = sizeof(struct ...

    Linux网络编程

    6.11.2 OOB 传输套接字例程(服务器代码Server.c) ............... 193 6.11.3 OOB 传输套接字例程(客户端代码Client.c)................ 196 6.11.4 编译例子.......... 199 6.12 使用Inetd(Internet 超级...

    linux网络编程

    什么是socket IPv4套接口地址结构 网络字节序 字节序转换函数 地址转换函数 套接字类型 07socket编程(二) TCP客户/服务器模型 回射客户/服务器 socket、bind、listen、accept、connect 08socket编程(三) SO_...

    linux网络编程学习笔记

    listen函数将 bind 的文件描述符变为监听套接字.返回的情况和 b ind 一样. accept int accept(int sockfd, struct sockaddr *addr,int *addrlen) sockfd:是 listen后的文件描述符. addr,addrlen是用来给...

    C++教程网《Linux网络编程》视频百度云地址

    UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信发展 进程间通信分类 进程间共享信息的三种方式 IPC对象的持续性 24进程间...

    2018年C++教程网的linux网络编程视频共41集百度云下载链接.rar

    UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信发展 进程间通信分类 进程间共享信息的三种方式 IPC对象的持续性 24进程间通信介绍...

    Linux网络编程 视频 教程

    UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信发展 进程间通信分类 进程间共享信息的三种方式 IPC对象的持续性 24进程间...

    C++教程网视频:linux网络编程

    UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信发展 进程间通信分类 进程间共享信息的三种方式 IPC对象的持续性 24进程间...

    c++教程网的linux网络编程视频下载

    UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信发展 进程间通信分类 进程间共享信息的三种方式 IPC对象的持续性 24进程间...

    [免费]2018年C++教程网的linux网络编程视频百度云下载链接.rar

    UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信发展 进程间通信分类 进程间共享信息的三种方式 IPC对象的持续性 24进程间...

    linux网络编程-宋敬彬-part1

    8.3 套接字描述符判定函数issockettype() 223 8.3.1 进行文件描述符判定的函数issockettype() 224 8.3.2 main()函数 224 8.4 IP地址与域名之间的相互转换 225 8.4.1 DNS原理 225 8.4.2 获取主机信息的函数...

    Linux网络编程.pdf socket tcp udp

    3.1.4 数据和文件描述符的继承 .......................................................................29 3.2 进程的控制操作................................................................................

Global site tag (gtag.js) - Google Analytics