七、IP地址与端口号
来看这么一个问题:客户端在主机A上,服务器在主机B上,两者的通信,应该是先要识别到电脑(即IP),再识别进程(即端口号),然后才建立通信。
端口号(2个字节):(十进制范围)[0,65535],http 80, ftp 21, https 443.......1000以内的端口号大多被标准协议使用,所以自由端口号一般为1000以上。
IP地址转换相关类:
【IPAddress类】
String ipStr = "192.168.3.12";
try{
IPAddress ip = IPAddress.Parse(ipStr);//当然也可以使用IPAddress的构造方法来转换,只是有点麻烦而且不直观
} catch { MessageBox.Show("please enter an illegal ip address!"); }
【IPEndPoint类】
IPEndPoint iep = new IPEndPoint(IPAddress ip, int port );
iep.Address , iep.Port .
【IPHostEntry类 和 Dns类】
IPAddress[] ips = Dns.GetHostEntry("www.baidu.com").AddressList;//还有HostName 和 Aliases属性
IPAddress[] ips = Dns.GetHostAddresses("www.baidu.com");//如果引号里面为空,则获取本机所有IPv4地址,且0号为本机地址
string hostname = Dns.GetHostName();//获取本机主机名
八、网络数据编码与解码
编码方式:ASCLL字符集,非ASCLL字符集(GB系列),Unicode字符集(UTF系列)
常用类:Encoding类、Encoder类、Decoder类
九、套接字(Socket)——支持TCP/IP网络通信的基本操作单元
分类:流Socket(TCP)、数据报Socket(UDP)、原始Socket(IP数据包)
保存了本机IP和Port、对方IP和Port、通信协议等信息。
构造函数:public Socket(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType) //网络类型,Socket类型,协议类型