- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在维护一些Web服务器软件,并且需要执行很多I/O操作。当在套接字上使用read()
,write()
,close()
和shutdown()
调用时,有时可能会引发ENOTCONN
错误。该错误的确切含义是什么?触发它的条件是什么?我似乎永远不可能在本地复制它,但是有些用户可以。
现在,当由ENOTCONN
和close()
引发时,我只是忽略shutdown()
,因为它看起来无害,但我不确定。
编辑:
connect()
调用成功。我检查它的返回值。 ENOTCONN
通常由close()
和shutdown()
引发。我很少看到read()
和write()
提高ENOTCONN
的情况。 最佳答案
如果您确定TCP连接端没有任何东西正在关闭该连接,那么听起来像是远程端正在关闭该连接。
正如其他人所指出的,ENOTCONN
只是意味着套接字未连接。这并不一定意味着connect
失败。套接字很可能以前已经连接过,只是在调用时才导致ENOTCONN
。
这不同于:
ECONNRESET
:连接的另一端发送了一个TCP重置数据包。如果另一端拒绝连接,或者不承认它已经连接,则可能发生这种情况。 ETIMEDOUT
:这通常仅适用于connect
。如果连接尝试在与系统有关的时间内未成功,则可能会发生这种情况。 EPIPE
大致相同的条件下返回
ENOTCONN
。例如,在某些系统上,
EPIPE
和
ENOTCONN
由
send
返回时是同义词。
shutdown
返回
ENOTCONN
并不罕见,但是由于此函数应该断开TCP连接,所以我很惊讶地看到
close
返回
ENOTCONN
。实际上,它绝对不应该那样做。
EBADF
d的文件描述符进行某些操作,否则
close
不应应用在您的方案中。使套接字断开连接(即TCP连接断开)与关闭与该套接字关联的文件描述符不同。
关于sockets - 是什么导致ENOTCONN错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/900042/
我正在尝试将图像上传到 Aws S3 存储桶。我尝试按照教程进行操作,但收到一条错误消息“正在返回 ENOTCONN,因为尚未设置协议(protocol)。”我是 swift 的新手,我也无法理解为什
这是在 AS400(IBM i、iSeries 等)上。 我有一个小型 Java 程序,用于将测试文件发送到用 C++ 编写的服务器,该服务器也在 IBM i 上运行。在我的 Java 程序中,我将响
Node 项目在几个月前运行良好,现在在实现套接字之后,当尝试运行应用程序时,我看到以下错误: Error in console(git bash) 我正在使用 win 10,尝试更改 Node 版本
我正在尝试从阻塞套接字中读取,但我想知道 read() 返回 -1,我认为这意味着当前没有数据可读 - 我希望它会阻塞直到它可以读取字节数。 我还尝试确保套接字处于阻塞模式并且使用以下方法设置了高超时
为要写入文件流的 console.log 或 console.error 创建了访问和错误管道或可写流。 var fs = require("fs"); var access = fs.createW
我是一名优秀的程序员,十分优秀!