您现在的位置: 主页 > 嵌入式软件 > C/C++ > c/c++网络编程使用getaddrinfo的单纯UDP通信
本文所属标签:
为本文创立个标签吧:

c/c++网络编程使用getaddrinfo的单纯UDP通信

来源:fromnet 网络用户发布,如有版权联系网管删除 2018-10-12 

网络编程 使用getaddrinfo的单纯UDP

1,UDP发送端

2,UDP接收端

UDP发送端:

#include #include #include #include #include #include #include #include //getaddrinfoint 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;}

github源代码

发送端的执行方式:

./a.out 127.0.0.1

UDP接收端

#include #include #include #include #include #include #include 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;}

github源代码

c/c++ 学习互助QQ群:877684253

本人微信:xiaoshitou5854



              查看评论 回复



嵌入式交流网主页 > 嵌入式软件 > C/C++ > c/c++网络编程使用getaddrinfo的单纯UDP通信
 源代码 识别 发送

"c/c++网络编程使用getaddrinfo的单纯UDP通信"的相关文章

网站地图

围观()