【问题标题】:In windows10(1803), socket programmingwindows10(1803)中,socket编程
【发布时间】:2018-12-21 10:49:15
【问题描述】:

windows10(1803)中,socket编程

如图,client_socket 被添加到Write set 中,Write.fd_count 变成 1。但是选择之后,Write.fd_count 变成 0,FD_ISSET(client_socket, &Write) 返回 0。也就是说,@ 987654327@ 是从Write 中删除,由select() 函数设置。

其他windows版本好像没有这个bug。不知道为什么?

【问题讨论】:

    标签: windows sockets select


    【解决方案1】:

    这不是错误。返回的fd_set 告诉您哪些套接字已准备就绪。由于没有准备好套接字,返回的fd_sets 应该是空的。想象一下,如果您有两个正在检查可读性的套接字,select 返回 1。如果尚未从输出的 fd_set 中删除尚未准备好的套接字,您如何知道哪个套接字已准备好?

    【讨论】:

    • 非常感谢!但是我该怎么做才能解决这个问题呢?
    • @JasonWang 到底是什么问题?这是怎么回事?
    猜你喜欢
    • 2013-12-16
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    相关资源
    最近更新 更多