网络通讯基础(7):listen函数

listen函数

1.什么是listen函数

典型的服务器程序可以同时服务于多个客户端,如果有大量的客户端发起连接而服务器来不及处理,尚未连接的客户端就处于连接等待状态。listen函数的作用就是设置最多有backlog 个容户端处于连接等待状态,如果接收到更多的连接请求就忽略。

要使用listen函数,需要先包含头文件:

#include <sys/types.h)
#include <sys/socket.h)

2.listen函数的定义

int listen (int sockfd, int backlog);

其中sockfd代表套接字的文件描述符,即socket函数的返回值,详情请看网络通讯基础(5):socket函数-CSDN博客;backlog代表等待连接队列的最大长度。它表示在某一时刻,服务器允许同时有最多backlog个客户端排队等待建立3次握手。此函数若成功返回0,失败则返回-1。

3.举例

#include <sys/types.h)
#include <sys/socket.h)
int mian(void){
    struct sockaddr_in server_addr;
    int sock=socket(AF_INET,SOCK_STREAM,0); #获取套接字的文件描述符
    server_addr.sin_family=AF_INET;  #使用IPV4协议
    server_addr.sin_addr.s_addr=htonl(INADDR_ANY); #定义IP地址,这里不明白请看网络编程基础(3)
    server_addr.sin_port=htons (666); #定义端口号
    bind(sock,(struct sockaddr *)&server_addr, sizeof(server_addr));  #使用bind函数将套接字绑定到服务器的IP地址和端口号上,(struct sockaddr *)&server_addr这个强制转换不懂得可以看网络编程基础(3)
    listen(sock,128); #设置服务器允许同时有最多128个客户端排队等待建立3次握手
}   

上面展示的代码就是listen函数的一个简单使用过程,每一个代码段代表的意思都已注释,若有哪里表达的不清楚,欢迎大家提出,最后感谢的观看!

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值