大家好,我是杂烩君。
嵌入式Linux开发中,有时候我们程序需要检测设备的联网状态。这里分享两种方法:
方法一:创建一个socket client尝试去链接一个服务器。
方法二:通过检测sysfs下的对应文件。
方法一
static int check_net_status(void)
{
int sock_cli = socket(AF_INET, SOCK_STREAM, 0);
if (sock_cli < 0)
{
perror("socket");
return -1;
}
struct sockaddr_in servaddr;
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(80);
servaddr.sin_addr.s_addr = inet_addr("114.114.114.114");
if (connect(sock_cli, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0)
{
perror("connect");
return -1;
}
printf("connect ok!\n");
return 0;
}