这个部分涉及最底层的一些文件,包括Endian,SocketsOps,InetAddress,Socket这几个文件。
1.基本关系与内容
它们的关系我用一个图来表示
如图所示,Endian是封装了各种大端---小端转换的函数,SocketsOps实现了许多例如socket的各种操作。
这两个文件都是位于Sockets空间命名空间之下的,它们都是直接调用linux系统函数来实现的。
后面的一些类里面的成员函数将调用Sockets空间里面的函数。
Class InetAddress专门实现了一个类来处理要用到的地址。
Class Socket是对于套接字描述符的封装的类。
2.地址问题
(1)通用套接字地址与IPv4套接字地址
通用套接字地址sockaddr
IPv4套接字地址sockaddr_in
需要进行转换
(2)网络传输与用户输入
①IP地址
实际用户习惯使用点分十进制来表示IP地址,用户输入的是一个字符串。
网络传输的是二进制值。
它们之间需要转换。
②Port
实际用户输入的是与Host相关的一种存储序。
网络传输需要使用网络序,即大端序。
它们之间需要转换。