• accept函数


      accept()是一个套接口接收的一个连接。accept()是C语言中网络编程的重要函数,本函数从S的等待连接队列中抽取第一个连接,创建一个与S同类的新的套接口并返回句柄。

    表达式简介

      SOCKET accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen); 

    参数:

      sockefd:套接字描述符,该套接字在listen()后监听连接。

      addr:(可选)指针。指向一个缓冲区,其中接收为通讯层所知的连接实体的地址。Addr参数的实际格式由套接口创建时所产生的地址族确定。

      addrlen:(可选)指针。输入参数,配合addr一起使用,指向存有addr地址长度的整形数。

      本函数从s的等待连接队列中抽取第一个连接,创建一个与s同类的新的套接口并返回句柄。如果队列中无等待连接,且套接口为阻塞方式,则accept()阻塞调用进程直至新的连接出现。如果套接口为非阻塞方式且队列中无等待连接,则accept()返回一错误代码。已接受连接的套接口不能用于接受新的连接,原套接口仍保持开放。

      addr参数为一个返回参数,其中填写的是为通讯层所知的连接实体地址。addr参数的实际格式由通讯时产生的地址族确定。addrlen参数也是一个返回参数,在调用时初始化为addr所指的地址空间;在调用结束时它包含了实际返回的地址长度(用字节数表示)。该函数与SOCK_STREAM类型的面向连接的套接口一起使用。如果addr与addrlen中有一个为零NULL,将不返回所接受的套接口远程地址的任何信息。

    返回值:

      如果没有错误产生,则accept()返回一个描述所接受包的SOCKET类型的值。否则的话,返回INVALID_SOCKET错误,应用程序可通过调用WSAGetLastError()来获得特定的错误代码。

      addrlen所指的整型数初始化时包含addr所指地址空间大小,在返回时它包含实际返回地址的字节长度。

  • 相关阅读:
    while循环学习之统计流量
    MySQL的启动脚本
    UVA 725 Division
    UVA 712 S-tree
    UVA 514
    字典树
    UVA 1595 multimap 的应用
    C++ map 和 multimap
    浮点数
    UVA 227
  • 原文地址:https://www.cnblogs.com/wjq13752525588/p/11641252.html
Copyright © 2020-2023  润新知