c ++网络编程库

时间:2014-12-10 15:46:23

标签: c++ network-programming

我在C语言的网络编程方面有一些经验,但在我的新项目中,我有/使用c ++。我的问题现在有点笼统,是否有任何c ++特定的库已经可用于网络编程,或者我只是使用与C中相同的方法?例如。为了获得C中的IP地址,我会做类似的事情:

  fd = socket(AF_INET, SOCK_DGRAM, 0);
  ifr.ifr_addr.sa_family = AF_INET;
  strncpy(ifr.ifr_name, "eth0", IFNAMSIZ-1);
  ioctl(fd, SIOCGIFADDR, &ifr);
  strncpy(ip, inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr), IP_ADDR_LEN);
  ioctl(fd, SIOCGIFNETMASK, &ifr);
  strncpy(netmask, inet_ntoa(((struct sockaddr_in *)&ifr.ifr_netmask)->sin_addr), IP_ADDR_LEN);

  close(fd);

我知道我可以简单地在c ++中使用相同的代码,但是会不会有任何带有方法的类来使它变得更容易"?

1 个答案:

答案 0 :(得分:3)

您想要的库是asio。它可以单独使用,也可以作为boost库的一部分。

它是免费的跨平台,支持多线程,异步套接字,同步套接字,定时器,工作队列....

如果没有符合c ++标准,它就像接近'标准'一样。

http://www.boost.org/doc/libs/1_57_0/doc/html/boost_asio.html

http://think-async.com/Asio