网络编程 使用getaddrinfo的单纯UDP
1,UDP发送端
2,UDP接收端
UDP发送端:
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
#include <netdb.h>//getaddrinfo
int main(int argc, char* argv[]){
int sock;
addrinfo hints, *res;
int err;
int n;
printf(\"argv[1]: %sn\", argv[1]);
if(argc !=2)return 1;
//IP地址和网站都可以识别
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_UNSPEC;///IP地址和网站都可以识别
hints.ai_socktype = SOCK_DGRAM;
err = getaddrinfo(argv[1], \"12345\", &hints, &res);
if(err != 0){
printf(\"getaddrinfo: %sn\", gai_strerror(err));
}
sock = socket(res->ai_family, res->ai_socktype, 0);
if(sock < 0){
perror(\"socket\");
return 1;
}
{
const char* ipver;
switch(res->ai_family){
case AF_INET:
ipver = \"IPv4\";
case AF_INET6:
ipver = \"IPv6\";
default:
ipver = \"unknown\";
}
printf(\"%sn\", ipver);
}
n = sendto(sock, \"bbbbn\", 5, 0, res->ai_addr, res->ai_addrlen);
if(n < 0){
perror(\"sendto\");
return 1;
}
close(sock);
freeaddrinfo(res);
return 0;
}
发送端的执行方式:
./a.out 127.0.0.1
UDP接收端
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
#include <netdb.h>
int main(){
int sock;
addrinfo hints, *res;
int err,n;
char buf[2048];
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_DGRAM;
hints.ai_flags = AI_PASSIVE;
err = getaddrinfo(NULL,\"12345\", &hints, &res);
if(err != 0){
printf(\"getaddrinfo:%sn\", gai_strerror(err));
return 1;
}
sock = socket(res->ai_family, res->ai_socktype, 0);
if(sock < 0){
perror(\"socket\");
return 1;
}
if(bind(sock, res->ai_addr, res->ai_addrlen) != 0){
perror(\"bind\");
return 1;
}
freeaddrinfo(res);
memset(buf, 0, sizeof(buf));
n = recv(sock, buf, sizeof(buf), 0);
if(n < 0){
printf(\"recv failuren\");
}
printf(\"%sn\", buf);
close(sock);
return 0;
}
继续阅读与本文标签相同的文章
-
陈冠希竟然和罗永浩联手了!难不成要搞个锤子?当然不是……
2026-05-18栏目: 教程
-
中国最强快递公司,年入300亿,被称作“哪都通”,但国人都很嫌弃
2026-05-18栏目: 教程
-
原厂直播:ANSYS SI/PI/EMI&TI 2019 R3 新功能介绍
2026-05-18栏目: 教程
-
距离死亡不到3个月 Win7被疯狂攻击
2026-05-18栏目: 教程
-
5G商用落地,对OTT和IPTV有哪些影响?
2026-05-18栏目: 教程
