this.tcpSocket.on('error', (data: BusinessError) => {
this.tztLog("tcp_onError error:%s", JSON.stringify(data));
this.closeSocket();
});
问题1:socket链接后,断开网络,收到错误码103,message为空,103的意思是什么?
问题2:socket从远程断开和从本地手动断开有没有区分?
this.tcpSocket.on('error', (data: BusinessError) => {
this.tztLog("tcp_onError error:%s", JSON.stringify(data));
this.closeSocket();
});
问题1:socket链接后,断开网络,收到错误码103,message为空,103的意思是什么?
问题2:socket从远程断开和从本地手动断开有没有区分?
1 回答1.1k 阅读✓ 已解决
1 回答1.4k 阅读
1 回答1.2k 阅读
1 回答1.1k 阅读
1 回答1.1k 阅读
1 回答989 阅读
1 回答967 阅读
问题一:错误码103表示“Network unreachable”,即网络不可达。在Socket连接断开网络后,收到此错误码意味着网络连接无法建立或网络出现了问题。
问题二:
1.从远程断开:当远程端主动关闭Socket连接时,本地端会收到网络断开的通知,并且Socket连接会被关闭。此时,不会调用任何回调函数,并且不会显式地调用close方法。
2.从本地手动断开:当本地端主动关闭Socket连接时,可以通过调用close方法来断开连接。可以选择使用Promise或回调函数来处理断开过程的异步操作。
区别如下:
通知方式:从远程断开时,没有明确的通知方法;从本地手动断开时,可以通过close方法明确调用。
异步处理:从远程断开时,无需显式处理;从本地手动断开时,需要处理异步操作的结果。
错误码104的含义
错误码104表示“连接失败”。这通常意味着在建立TCP连接时,发生了与远程主机的通信错误。具体原因可能包括:
详细解释
在TCP/IP协议中,TCP连接的建立是一个复杂的过程,涉及多个步骤和握手。当连接失败时,操作系统会返回相应的错误码来指示失败的原因。错误码104表示在TCP连接的建立过程中,发生了与远程主机的通信错误。
这种错误通常意味着操作系统尝试与目标主机建立连接时,遇到了无法克服的网络障碍。例如,目标主机可能不可达、网络连接被拒绝、防火墙阻止了连接尝试等。