美好的一天,
所以我有一个c#项目连接到zkteco时间&考勤单位(k30是设备名称)
有时在尝试连接时随机出现我从sdk代码返回的错误-10054
这是我用来连接的代码
bIsConnected = BMDevice.Connect_Net(ipAddress, 4370);
这是用于返回错误的代码
BMDevice.GetLastError(ref ErrorCode);
我似乎无法复制错误,并且在提供的文档中没有编号为-10054的ErrorCode。我可以ping设备并telnet到分配了端口号的ip,我也可以使用设备本身。
为了解决这个问题,我必须手动重启设备,然后我可以毫无问题地连接。
试过问zkteco的人但是我跟的人没什么帮助
答案 0 :(得分:0)
ZKTeco 文档没有解释 -10054 是什么意思,但可以推断出这个错误是 WSAECONNRESET
套接字错误。
来自MSDN:
<块引用>对等方重置连接。远程主机强行关闭了现有连接。如果远程主机上的对等应用程序突然停止,主机重新启动,主机或远程网络接口被禁用,或者远程主机使用硬关闭(有关远程上的 SO_LINGER 选项的更多信息,请参阅setsockopt 的更多信息),这通常会导致插座)。如果在一个或多个操作正在进行时由于保持活动活动检测到故障而导致连接中断,也可能导致此错误。正在进行的操作因 WSAENETRESET 而失败。后续操作因 WSAECONNRESET 而失败。
根据我的经验,错误 -10054 主要发生在网络中有两个具有相同 IP 地址的 ZKTeco 设备时。这就是您必须手动重启设备的原因。