听功能

电脑杂谈  发布时间:2020-05-13 15:27:23  来源:网络整理

listen 函数_listen函数返回-1_listen函数返回值

摘要: 侦听功能使用活动的连接套接字成为已连接的套接字,以便某个进程可以接受来自其他进程的请求,从而成为服务器进程. 在TCP服务器编程中,listen函数将进程转换为服务器,并指定相应的套接字成为被动连接.

通常在调用bind-before accept之后调用listen函数,其函数原型为:

listen函数返回值_listen函数返回-1_listen 函数

#include

int(int sockfd,int积压)

listen函数返回-1_listen函数返回值_listen 函数

返回: 0──成功,-1──失败

参数sockfd

listen函数返回值_listen 函数_listen函数返回-1

由侦听功能运行的套接字在sockfd之前由套接字函数返回. 当套接字函数返回的套接字fd是活动连接的套接字时listen函数返回值,也就是说,系统假定用户将在此套接字上调用connect函数,并期望它与其他进程进行主动连接,然后在服务器编程中,用户希望套接字可以接受外部连接请求,也就是被动地等待用户连接. 由于系统默认认为套接字是活动连接的,因此需要以某种方式通知系统. 用户进程通过调用listen完成此操作.

参数积压

listen函数返回值_listen函数返回-1_listen 函数

此参数涉及一些网络详细信息. 当该过程在逻辑上是一个连接请求时listen函数返回值,可能会有其他连接请求. 因为TCP连接是一个进程,所以可能存在半连接状态. 有时由于太多用户试图同时连接,服务器进程无法快速完成连接请求. 如果发生这种情况,服务器进程如何期望内核进行处理?内核在其自己的进程空间中维护一个队列,以跟踪这些已完成的连接,但是服务器进程尚未接管处理或正在进行的连接. 这样的队列内核不能任意大,因此必须有一个上限. 此积压通知内核将这个值用作上限.

毫无疑问,服务器进程不能随机指定一个值,并且内核具有允许的范围. 此范围取决于实现. 很难实现某种统一,通常该值将小于30.

调用listen之后,服务器进程可以调用accept接受外部请求.

发件人:


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-208772-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...