社区编辑申请
注册/登录
OpenHarmony与苹果的梦幻联动—服务器端
系统 OpenHarmony
配置wifi连接的配置文本–>编写TCP服务器的C文件 --> 配置BUILD.gn --> 将我们的代码添加编译–>编译烧录。

??想了解更多关于开源的内容,请访问:??

??51CTO 开源基础软件社区??

??https://ost.51cto.com??

一、前言

上一篇文章进行了C语言API的讲解,本篇文章将在小熊派上进行实操。

二、准备工作

1、小熊派-鸿蒙·叔(BearPi-HM Micro)一台。

2、已经配置好小熊派开发环境的电脑一台。

3、将小熊派接入到局域网。

三、流程简介

配置wifi连接的配置文本–>编写TCP服务器的C文件 --> 配置BUILD.gn --> 将我们的代码添加编译–>编译烧录。

四、WIFI配置

打开applications/BearPi/BearPi-HM_Micro/samples/communication/wpa_supplicant/config/wpa_supplicant.conf配置文件,修改ssid和psk为你自己家路由器或者手机热点的名字和密码。

五、业务代码编写

我们在工程目录下/applications/BearPi/BearPi-HM_Micro/samples里面存放我们的代码。

目录结构如下:

├─ tcp_http     #源码目录
├── BUILD.gn #编辑配置文件
└── tcp_http.c #网络通信源码

1、 编写TCP服务器源码

本部分是整个TCP服务器实现的核心,打开我们创建的tcp_http.c文件,添加以下代码。为了方便测试代码的有效性,我们先拿TCP服务器做一个简单的网站,用到了一点点简单的HTTP协议。

#include <stdio.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <string.h>
int main()
{
//1创建socket
int socket_server = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
int opt = 1;
setsockopt(socket_server,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof( opt ));//该函数解决端口占用问题
//2.绑定端口
struct sockaddr_in server_addr;
memset(&server_addr,0,sizeof(struct sockaddr_in));//把结构体里面的数据清零
server_addr.sin_port = htons(80);
server_addr.sin_addr.s_addr = htonl(INADDR_ANY);//任意ip都能访问此服务
server_addr.sin_family = AF_INET;
bind(socket_server,(struct sockaddr*)&server_addr,sizeof(server_addr));
//3.监听端口
listen(socket_server,5);//5表示最大连接数
while(1){
//4.进入阻塞状态
struct sockaddr_in client_addr;
int client_lenght = sizeof(client_addr);
int client_id = accept(socket_server,(struct sockaddr*)&client_addr,&client_lenght);
//5.读取客户端发来的消息
char buffer[1024];
recv(client_id,buffer,sizeof(buffer),0);
printf("%s",buffer);
//5.根据HTTP协议的格式,反馈一个网页给客户端
const char buf[]="HTTP/1.1 200 OK\r\nDate: Fri, 22 May 2009 06:07:21 GMT\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n<html><head></head><body><p>Hello Openharmony!</p></body></html>";
send(client_id,buf,sizeof(buf),0);
//6.关闭套接字
close(client_id);
}
return 0;
}

2、 配置BUILD.gn文件

import("//build/lite/config/component/lite_component.gni")
executable("tcp_http") {
sources = [
"tcp_http.c",
]
include_dirs = [
]
}
lite_component("net_app") {
features = [
":tcp_http",
]
}

3、 配置编译组件

我们要将我们的代码加入到my_sample组件中,打开build/lite/components/applications.json。

添加图中的两条路径。

六、编译烧录

1、 编译

# 进入下载路径
cd ~/bearpi-hm_micro_small
# 开始编译
hb set
# 输入当前路径
.
# 回车选择“bearpi-hm_micro”
# 编译
hb build -t notest --tee -f
# 等待直到屏幕出现:build success字样,说明编译成功。

2、烧录

先复制出来编译好的镜像。

cp out/bearpi_hm_micro/bearpi_hm_micro/OHOS_Image.stm32 applications/BearPi/BearPi-HM_Micro/tools/download_img/kernel/
cp out/bearpi_hm_micro/bearpi_hm_micro/rootfs_vfat.img applications/BearPi/BearPi-HM_Micro/tools/download_img/kernel/
cp out/bearpi_hm_micro/bearpi_hm_micro/userfs_vfat.img applications/BearPi/BearPi-HM_Micro/tools/download_img/kernel/

复制再使用STM32CubeProgrammer烧录镜像,纯Linux开发环境参考我之前的教程,Windows混合开发环境请参考官方教程。

七、测试

烧录成功后,切换拨码,进入到系统。

串口连接小熊派的ohos终端,首先要进行wifi配置,在终端输入以下命令配置wifi。

./bin/wpa_supplicant -i wlan0 -d -c /etc/wpa_supplicant.conf

输入此命令后大概等3分钟,等待小熊派连接上wifi。

通过以下命令查看是否分配到ip可以知道小熊派是否已经连接上了wifi。

ifconfig

如果有了IP表示已经连接上了wifi,我们接着运行我们写tcp服务器。

cd bin/   #先进入到bin目录中 
./tcp_http #运行我们的程序

复制接着我们可以在我们同在一个局域网的电脑上,打开浏览器,输入小熊派的ip访问服务器。

浏览器能够成功显示“Hello Openharmony”,表示已经成功搭建好了TCP服务器。

八、尾言

大家可能关心一开始的与苹果siri联动的怎么实现,考虑大多数小伙伴的复现,先做了一个简单的http服务器,大家可以直接在浏览器上访问即可以调试。下篇文章会给大家最终实现的代码。希望大家能用网络通信,开发更多有意思的项目。

??想了解更多关于开源的内容,请访问:??

??51CTO 开源基础软件社区??

??https://ost.51cto.com??。

责任编辑:jianghua 来源: 鸿蒙社区
相关推荐

2022-04-02 20:45:04

Hi3516开发板操作系统鸿蒙

2022-04-27 15:12:06

TCP服务器鸿蒙

2022-04-15 14:31:02

鸿蒙操作系统

2022-04-07 15:28:16

HarmonyOS鸿蒙操作系统

2022-05-11 15:08:52

驱动开发系统移植

2022-04-20 20:28:40

HDF 驱动框架鸿蒙操作系统

2022-04-14 10:10:59

Nginx开源Linux

2022-04-07 14:33:31

操作系统鸿蒙HarmonyOS

2022-04-01 15:18:04

HarmonyHDF 驱动鸿蒙

2022-03-02 16:08:31

Harmony应用开发鸿蒙

2022-04-06 11:27:05

harmonyeTS 开发NAPI开发

2022-04-18 10:37:01

鸿蒙操作系统开发工具

2022-04-21 14:05:21

开发者论坛

2022-04-19 11:23:26

release3.1子系统鸿蒙

2022-04-01 15:54:01

DHCP网络协议开发板

2022-04-21 11:26:31

鸿蒙操作系统

2022-04-25 08:07:45

TektonArgocdCI和CD

2022-04-08 11:08:17

分布式数据接口同步机制

2022-04-15 14:57:57

Flex布局鸿蒙操作系统

2022-04-06 13:55:22

DockerLinux

同话题下的热门内容

OpenHarmony啃论文俱乐部—大数据框架性能优化系统OpenEuler-22.03-LTS+UKUI如何快速在AARCH64架构运行与体验OpenHarmony—分区切换之Reboot源码解析HarmonyOS Connect设备开发--抛除束缚,自定义设备UIOpenHarmony驱动框架HDF中设备管理服务构建过程详解之一如何在DAYU200上安装浏览器-基于OpenHarmony 3.1 Release版本HarmonyOS - Java与Js的混合使用与交互OpenHarmony啃论文俱乐部——物联网摇摆门趋势算法

编辑推荐

HarmonyOS 2.0鸿蒙第二期开发者Beta公测申请指南HarmonyOS LYEVK-3861开发板播放《蜜雪冰城》鸿蒙HarmonyOS分布式软总线:构建低时延、高带宽的多设备虚拟网络华为HarmonyOS的强势突围: 直面物联网迷宫的蓄力进击鸿蒙HarmonyOS2.0发布会现场回忆录
我收藏的内容
点赞
收藏

51CTO技术栈公众号

网站地图 申博138开户 太阳城登入 菲律宾太城申博 百家乐娱乐登入
申博注册登入 www.7788sbc.com 申博太阳城 菲律宾申博游戏登入
申博手机下载版 盛618官网 澳门赌场 澳门百家乐
现金网百家乐 ag娱乐登入 申博娱乐手机登入 申博游戏手机下载
捕鱼游戏 太阳城网址 星级百家乐 申博游戏