目前想要开发的功能是实现,通过网线将开发板和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"
      }
    ]

因为本人刚入门相关,对这些知识一知半解,望大佬们不吝赐教。

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐