梅科尔工作室-鸿蒙设备开发第六次笔记

mb62c3b902def3f
发布于 2022-8-1 23:02
浏览
0收藏

一、UDP客户端
1.相关API介绍
socket.h接口简介:
这个socket.h中包含声明UDP协议相关接口函数。
接口名 功能描述
socket 创建套接字
sendto 将数据由指定的socket发送到远端主机
recvfrom 从远端主机接收UDP数据
close 关闭套接字
2.UDP客户端的创建
梅科尔工作室-鸿蒙设备开发第六次笔记-鸿蒙开发者社区
3.UDP客户端实现代码

static void UDPClientTask(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_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);
}


二、TCP服务端
1.TCP协议相关API介绍
socket.h接口简介:
这个socket.h中包含声明TCP协议相关接口函数。
接口名 功能描述
socket 创建套接字
bind 为套接字关联了一个相应的地址与端口号
listen 将套接字设置为监听模式
accept 接受套接字上新的连接
recv 接收数据
send 发送数据
close 关闭套接字
2.TCP服务端创建流程介绍
梅科尔工作室-鸿蒙设备开发第六次笔记-鸿蒙开发者社区
3.实现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");



标签
收藏
回复
举报
回复
    相关推荐