美文网首页
listen()函数

listen()函数

作者: 狗尾巴草败了 | 来源:发表于2017-09-10 00:08 被阅读0次

listen()函数仅有TCP服务器调用

#include<sys/socket.h>
int listen(int sockfd, int backlog)

调用listen(),导致套接字从CLOSED状态变为LISTEN状态。
本函数通常在调用socket()和bind()函数之后,并在调用accept()之前

内核为任何一个给定的监听套接字维护两个队列:

  1. 未完成连接队列
    某个客户发送SYN请求到服务器,然后服务器将等待TCP三次握手完成的时期,这些套接字处于SYN_RCVD状态
  2. 已完成连接队列
    每个已完成的TCP三次握手过程的客户对应其中一项,这些套接字处于*ESTABLISHED状态

当三次握手正常完成,该套接字就从未完成连接队列移动到已完成连接队列的队尾。
当进程调用accept()时,已完成连接队列的对头将返回给进程,如果队列为空,那么进程将投入睡眠。

相关文章

  • listen()函数

    listen()函数仅有TCP服务器调用 #include int listen(int sockfd, int ...

  • net.Listen()

    net.Listen() 函数主要用来开启一个服务。 net.Listen官方文档 listenner代表一个创建...

  • Socket编程:listen()函数英文翻译

    本篇翻译的listen()函数,我参考的国外网站是: listen 朋友们可以自由转载我对英文的中文翻译,但是对于...

  • tcp/ip协议listen函数中backlog参数的含义

    listen函数的定义如下所示: 返回值:若成功则返回文件(套接字)描述符,若出错则返回-1 int listen...

  • 2019-11-07理解套接字

    接受连接请求过程 调用socket函数创建套接字 调用bind函数分配IP地址和端口号 调用listen函数转为可...

  • listen 如何实现监听

    当绑定完端口后,就可以开启监听了,那么 listen 是如何实现的呢?还做哪些初始化操作呢? listen 函数声...

  • listen 函数中参数 backlog

    我们该如何理解 listen 函数中的参数 backlog?如果 backlog 表示的是未完成连接队列的大小,那...

  • Listen~listen~listen

    哈喽,你好,欢迎来到我的世界 今天是我们相遇的第82天,谢谢你的支持和鼓舞,还有陪伴。 今天是圣诞节,虽然我们不那...

  • qt tcp socket通信实现字符串传输

    QTcpServer的基本操作:1、调用listen监听端口。2、连接信号newConnection,在槽函数里调...

  • Socket基础知识与底层操作的理解

    初次在项目中接触到Socket编程,connect、bind、acccept、listen、recv等各个函数能用...

网友评论

      本文标题:listen()函数

      本文链接:https://www.haomeiwen.com/subject/ofxzjxtx.html