多个终端向协调器发送数据的代码
时间: 2024-02-15 10:01:55 浏览: 25
以下是基于Zigbee协议的多个终端向协调器发送数据的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define PORT 8888
int main(int argc, char *argv[])
{
int sockfd;
struct sockaddr_in servaddr;
// 创建套接字
if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
perror("socket");
exit(1);
}
// 设置服务器地址信息
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(PORT);
servaddr.sin_addr.s_addr = inet_addr("127.0.0.1");
// 发送数据
char *msg = "Hello, Zigbee!";
int len = strlen(msg);
if (sendto(sockfd, msg, len, 0, (struct sockaddr *)&servaddr, sizeof(servaddr)) == -1) {
perror("sendto");
exit(1);
}
// 关闭套接字
close(sockfd);
return 0;
}
```
以上代码仅演示了如何在一个终端发送数据到协调器,如果需要多个终端同时发送数据,可以在代码中使用循环或者多线程等方式。需要注意的是,不同终端之间的通信需要使用不同的端口号,否则会出现数据冲突的问题。