代码之家  ›  专栏  ›  技术社区  ›  David Pfeffer

socket.select返回错误“试图对非socket的对象执行操作”

  •  8
  • David Pfeffer  · 技术社区  · 14 年前

    当调用socket.select时,使用被验证为只包含socket对象的列表,我有时会收到错误消息。 An operation was attempted on something that is not a socket . 我找不到发生的模式。

    Socket.Select(readList, writeList, null, timeOut > 0 ? timeOut : 0);
    
    4 回复  |  直到 5 年前
        1
  •  8
  •   David Pfeffer    14 年前

    原来插座是关着的。对于.NET来说,这是一个非常愚蠢的错误,尽管只是因为一个封闭的套接字。

        2
  •  2
  •   Hans Passant    14 年前

    我在msdn上做了一个搜索,得到了一些点击率。见 here 和; here

    但是,我没有在winsock中开发任何东西,而是在unix中开发。 Select 需要重置 fd_set 每一次 选择 返回。也许同样适用于选择的Winsock实现。如果是这样,你的 readList, writeList 可能已经得到 腐败的 之后 选择 返回导致您提到的错误。只是一个想法。

        3
  •  0
  •   Prasaathviki    9 年前

    我的主机防火墙打开时出现此问题。 由于我的公司规则,我无法添加禁用防火墙。 因此,我在主机中添加了入站规则,以便在通信正常之后进行通信。

        4
  •  -1
  •   nisarg parekh    5 年前

    重新启动MySQL服务可能对您有所帮助。