HarmonyOS 鸿蒙Next TcpSocket bind success 但是connect fail {"code":2301101,"message":"Network is unreachable"}
HarmonyOS 鸿蒙Next TcpSocket bind success 但是connect fail {“code”:2301101,“message”:“Network is unreachable”}
同样的模拟器使用java 的net.socket connect成功
private bindAndconnect() {
/**
* family 网络协议类型,可选类型:IPv4 、IPv6 、 默认为IPv4。
* IPv4 = 1; IPv6 = 2, default is IPv4
*/
let address = '****'
let port = 5224
tcp.bind({
address: address,
port: port, // 绑定端口,如1234
family: 1
}, err => {
if (err) {
console.log('bind fail ' + JSON.stringify(err));
return;
}
console.log('bind success');
tcp.connect({ address: {
address: address,
port: port,
family: 1 }, timeout: 10000 }, err => {
if (err) {
console.log('connect fail ' + JSON.stringify(err));
return;
}
console.log('connect success');
})
}
)
}
更多关于HarmonyOS 鸿蒙Next TcpSocket bind success 但是connect fail {"code":2301101,"message":"Network is unreachable"}的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这个问题解决了吗?我也遇到了
更多关于HarmonyOS 鸿蒙Next TcpSocket bind success 但是connect fail {"code":2301101,"message":"Network is unreachable"}的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
解决了,鸿蒙的socket 只能使用IP来连接。先使用connect自己dns解析域名, 获取ip和famify然后再用connect。bind不用调用,
有的版本必需bind,则使用本地的loachost,但是famify要和connect的保持一致。
这也太蠢了吧。万一以后服务器换ip了怎么办,
错误码描述的信息为:网络连接错误
这可能是由于网络故障、错误的网络设置或网络配置问题等原因引起的。
反复测试后,发现把family改成2使用IPV6成功建立连接。
现在IPV4失败原因还不知道,请求地址支持IPV4、IPV6的,测试设备是DevEco Studio 3.1.1 Release的虚拟机,Wi-Fi 连接。
IPV4的解决了吗
绑定的端口号和连接的端口号使用同一个端口号,怎么能连接成功呢?bind的address和port指的一般是本机ip和本地端口,一般address可以设置为“localhost”,port不用设置;connect中的address对象中的address和port是服务端的ip地址和端口号。
开始的时候,看了socket api中的内容也弄了很长时间,文档中说的不是很清楚,后来看了相关的socket资料后,才慢慢测试出来。
基本信息
姓名:张三
职位:软件工程师
技能:Python, Java, C++
绑定的邮箱:zhangsan@example.com
联系电话:1234567890
在HarmonyOS鸿蒙Next中,TcpSocket的bind
操作成功但connect
失败,并返回错误码2301101
和消息"Network is unreachable"
,通常表示网络不可达。这种情况可能由以下原因引起:
-
网络配置问题:设备的网络配置可能存在问题,例如IP地址、子网掩码、网关等配置不正确,导致无法连接到目标服务器。
-
防火墙或安全策略:设备或网络中的防火墙可能阻止了TCP连接请求,或者安全策略限制了网络访问。
-
目标服务器不可达:目标服务器的IP地址或端口可能无法访问,可能是服务器未启动、端口被占用或网络路由问题。
-
网络接口未启用:设备的网络接口可能未正确启用或处于关闭状态,导致无法建立网络连接。
-
网络权限问题:应用可能未获得必要的网络权限,导致无法访问网络。
需要检查设备的网络配置、防火墙设置、目标服务器的可达性以及应用的网络权限,以确定具体原因并解决问题。