【求助】socket通信相关问题
·
目前想要开发的功能是实现,通过网线将开发板和pc端连接,实现tcp通信。
使用的开发板为讯为itop-3568开发板,烧录系统为openharmony 3.2.9.2 beta4 系统,开发为api8 fa模型。
有如下疑问:
1.我看的社区内Winslei大佬的网络编程教学中,使用的是官方示例代码,然后连接的是外部服务器。现在按照我想要的实现功能,pc端需要做什么来作为服务端,因为看官方接口文档,tcpserver接口是在api10实现的。装个调试工具是否可行?
2.连上网线后,如何使得开发板和pc端互相ping通,pc端连接上网线后是未识别网络,然后我用ifconfig命令将开发板的ip修改为同一网段,但无法ping通。pc端防火墙全部关闭的,开发板通过串口调试助手那边使用# setenforce 0命令,但是提示/system/bin/sh: setenforce: inaccessible or not found。
前面试过将开发板和电脑连接到路由器的不同端口,有ping通现象,但今日未复现。
代码方面,tcp连接代码方面使用的官方示例:
import socket from "@ohos.net.socket";
@Entry
@Component
struct Index {
private tcp = socket.constructTCPSocketInstance();
build() {
Row() {
Column() {
Text('bind')
.fontSize(50)
.fontWeight(FontWeight.Bold)
.onClick(() =>{
this.tcp.bind({address: '10.168.1.165 ', port: 8001, family: 1}, err => {
if (err) {
console.log('sfox bind fail');
return;
}
console.log('sfox bind success');
})
})
Text('connect')
.fontSize(50)
.fontWeight(FontWeight.Bold)
.onClick(() =>{
this.tcp.connect({address: {address: '10.168.1.123 ', port: 60000, family: 1}, timeout: 6000}, err => {
if (err) {
console.log('sfox connect fail');
return;
}
console.log('sfox connect success');
})
})
Text('send')
.fontSize(50)
.fontWeight(FontWeight.Bold)
.onClick(() =>{
this.tcp.send({
data: 'sfox Hello, server!'
//此处省略encoding, 默认为utf-8编码格式
}, err => {
if (err) {
console.log('sfox send fail');
return;
}
console.log('sfox send success');
})
})
Text('close')
.fontSize(50)
.fontWeight(FontWeight.Bold)
.onClick(() =>{
this.tcp.close(err => {
if (err) {
console.log('sfox close fail');
return;
}
console.log('sfox close success');
})
})
}
.width('100%')
}
.height('100%')
}
}
在config.json中也加上了需要的权限许可:
"reqPermissions": [
{
"name": "ohos.permission.INTERNET"
}
]
因为本人刚入门相关,对这些知识一知半解,望大佬们不吝赐教。
更多推荐
所有评论(0)