1.Ip地址和端口类
2.域名解析
3.序列化和反序列化
1.Ip地址和端口类
csharp
复制代码
1).IPAddress类: 用于处理IP地址
a.IPAddress.Parse(string ip)
解析字符串形式的IP地址(如 "127.0.0.1"), 无效IP会抛异常
b.IPAddress.TryParse(string ip, out IPAddress result)
安全解析IP地址(返回 bool, 不抛异常), 推荐使用
csharp
复制代码
2).IPEndPoint类(IP地址 + 端口): 封装"IP地址 + 端口号"的组合
using System;
using System.Net;
class IPEndPointDemo
{
static void Main()
{
// 步骤1:先创建IPAddress
IPAddress ip = IPAddress.Parse("192.168.1.100");
// 步骤2:创建IPEndPoint(IP+端口)
int port = 8080;
IPEndPoint endPoint = new IPEndPoint(ip, port);
// 访问属性
Console.WriteLine("端点IP:" + endPoint.Address); // 输出:192.168.1.100
Console.WriteLine("端点端口:" + endPoint.Port); // 输出:8080
// 验证端口范围(避免无效端口)
if (port >= IPEndPoint.MinPort && port <= IPEndPoint.MaxPort)
{
Console.WriteLine("端口号合法");
}
else
{
Console.WriteLine("端口号超出范围(0-65535)");
}
}
}
2.域名解析
csharp
复制代码
域名解析就是将好记的域名解析成IP, IP地址是网络上标识站点的数字地址, 但是IP地址相对来
说记忆困难, 所以为了方便记忆, 采用域名来代替IP地址标识站点地址
1).IPHostEntry是域名解析后的返回值, 可以通过该对象获取IP地址, 主机名等等信息
a.AddressList: 获取关联IP
b.Aliases: 获取主机别名列表
c.HostName: 获取DNS名称
2).DNS是一个静态类, 用它根据域名获取IP地址
IPHostEntry entry = Dns.GetHostEntry("www.baidu.com");
3.序列化和反序列化
csharp
复制代码
网络通信中, 我们把想要传递的类对象信息化为2进制数据(一般为byte字节数组), 再将2进制
数据通过网络传输给远端设备; 远端设备获取到该2进制数据后再将其反序列化为对应的类对象
a.序列化
将类对象信息可保存或可传输的格式的过程
b.反序列化
将保存或可传输的格式转换为类对象的过程