回复
梅科尔工作室-14.9
燃新梨。
发布于 2022-7-25 12:43
浏览
0收藏
HarmonyOS网络应用开发 UDP服务端
API介绍
UDP服务端创建流程
实现UDP服务端
打开“D4_iot_tcp_server”工程的tcp_server_demo.c文件,修改部分代码即可实现UDP服务端
HarmonyOS网络应用开发 UDP客户端
UDP客户端创建流程
UDP客户端的实现
打开“D3_iot_udp_client”工程的udp_client_demo.c文件, 可在代码中查看实现UDP客户端的代码
{
//服务器的地址信息
struct sockaddr_in send_addr;
socklen_t addr_length = sizeof(send_addr);
char recvBuf[512];
//连接Wifi
WifiConnect("Hold", "0987654321");
//创建socket
if ((sock_fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
{
perror("create socket failed!\r\n");
exit(1);
}
//初始化预连接的服务端地址
send_addr.sin_family = AF_INET;
send_addr.sin_port = htons(_PROT_);
send_addr.sin_addr.s_addr = inet_addr("192.168.0.175");
addr_length = sizeof(send_addr);
while (1)
{
bzero(recvBuf, sizeof(recvBuf));
//发送数据到服务远端
sendto(sock_fd, send_data, strlen(send_data), 0, (struct sockaddr *)&send_addr, addr_length);
//线程休眠一段时间
sleep(10);
//接收服务端返回的字符串
recvfrom(sock_fd, recvBuf, sizeof(recvBuf), 0, (struct sockaddr *)&send_addr, &addr_length);
printf("%s:%d=>%s\n", inet_ntoa(send_addr.sin_addr), ntohs(send_addr.sin_port), recvBuf);
}
//关闭这个 socket
close(sock_fd);
}
测试UDP客户端
工具下载地址:https://pan.baidu.com/s/13YlqQVzEa5ygcQeTSGQ_JA 提取码:1234
HarmonyOS网络应用开发 TCP服务端
API介绍
TCP服务端创建流程
TCP服务端实现
打开“D4_iot_tcp_server”工程的tcp_server_demo.c文件 ,可以查看实现TCP服务的代码
//创建socket
if ((sock_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
perror("socket is error\r\n");
exit(1);
}
bzero(&server_sock, sizeof(server_sock));
server_sock.sin_family = AF_INET;
server_sock.sin_addr.s_addr = htonl(INADDR_ANY);
server_sock.sin_port = htons(_PROT_);
//调用bind函数绑定socket和地址
if (bind(sock_fd, (struct sockaddr *)&server_sock, sizeof(struct sockaddr)) == -1)
{
perror("bind is error\r\n");
exit(1);
}
//调用listen函数监听(指定port监听)
if (listen(sock_fd, TCP_BACKLOG) == -1)
{
perror("listen is error\r\n");
exit(1);
}
printf("start accept\n");
测试TCP服务
工具下载地址:https://pan.baidu.com/s/13YlqQVzEa5ygcQeTSGQ_JA 提取码:1234
HarmonyOS网络应用开发 TCP客户端
API介绍
TCP客户端创建流程
实现TCP客户端
打开“D3_iot_udp_client”工程的udp_client_demo.c文件,修改部分代码即可实现TCP客户端。
static void TCPClientTask(void)
{
//服务器的地址信息
struct sockaddr_in send_addr;
socklen_t addr_length = sizeof(send_addr);
char recvBuf[512];
//连接Wifi
WifiConnect("Hold", "0987654321");
//创建socket
if ((sock_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
perror("create socket failed!\r\n");
exit(1);
}
//初始化预连接的服务端地址
send_addr.sin_family = AF_INET;
send_addr.sin_port = htons(_PROT_);
send_addr.sin_addr.s_addr = inet_addr("192.168.0.175");
addr_length = sizeof(send_addr);
connect(sock_fd, (struct sockaddr *)&send_addr, addr_length);
while (1)
{
bzero(recvBuf, sizeof(recvBuf));
// send(sock_fd,);
if ((ret = send(sock_fd, send_data, strlen(send_data), 0)) == -1)
{
perror("send : ");
}
if ((ret = recv(sock_fd, recvBuf, sizeof(recvBuf), 0)) == -1)
{
printf("recv error \r\n");
}
printf("recv :%s\r\n", recvBuf);
}
//关闭这个 socket
close(sock_fd);
}
标签
赞
收藏
回复
相关推荐