0

我们使用以下调用设置的非阻塞和异步套接字模式有什么区别。

  1. 案例一:int sockfd;// create_sock(sockfd);

    // init_sock(sockfd);

    fcntl(sockfd, F_SETFL, O_NONBLOCK);

  2. 案例二:

    int sockfd; // create_sock(sockfd);

    // init_sock(sockfd);

    整数 = 1;

    ioctl(sockfd, FIOASYNC, &on);

  3. 案例3:

    int sockfd;

    // create_sock(sockfd);

    // init_sock(sockfd);

    整数 = 1; ioctl(sockfd, FIONBIO, &on)

在上述所有情况下,套接字的行为是什么。

谢谢,

4

1 回答 1

1

“非阻塞”意味着该函数要么做了什么,要么没有做某事,并返回一个告诉你哪个状态。

“异步”是指函数调用的操作在函数返回后继续运行,并通过其他方式通知您其完成或失败,例如回调或您可以查询状态的句柄。

于 2014-05-07T11:05:09.900 回答