TCP/UDP
是网络编程的基础技术,分别代表面向连接的稳定的网络通信技术和非连接方式的广播形式的网络通信技术,它们都建立在
IP
层之上,所以
IP
层的封装尤为重要。
IP
层的封装接口主要包括
DNS
的查询、
IP
地址和域名的互查、本地
IP
及名字的查询等,目前
IP
层使用的主要实现技术是
IPv4
,但是未来会慢慢升级到容量更大的
IPv6
,所以
IP
层的封装需要要同时支持这两种协议。操作系统实现它们都是通过增加新的
API
以及新的地址结构实现的,开发者编写跨协议的网络应用需要编写较复杂的程序来区分
IPv4
和
IPv6
协议,优秀的
ACE
框架则通过条件编译来支持
IPv6
,好像不能同时在程序中使用
IPv4
和
IPv6
协议。本
C++
框架参考
Java
的
InetAddress
及相关类实现了类似跨协议的
IP
层封装,编写网络应用基本不用考虑两种协议的不同,应为它们对外的接口类都是
InetAddress
,另外同时提供了与
Java
一样简单的域名和
IP
地址互查的接口,使用非常容易。
http://www.cppblog.com/javenstudio/articles/4336.html
http://www.cppblog.com/javenstudio/articles/4336.html