C# UDP Socket 笔记
(所有注释全部出自C#官方文档 地址)
网络相关常用接口
获取本地IP
//通过网络接口描述来获取IP
public static string GetLocalIP_LAN80211()
{
//GetAllNetworkInterfaces 返回描述本地计算机上的网络接口的对象。
foreach (var interfaces in NetworkInterface.GetAllNetworkInterfaces())
{
//NetworkInterfaceType 网络接口的类型,Wireless80211 网络接口使用无线 LAN 连接(IEEE 802.11 标准)。
//OperationalStatus 指定网络接口的操作状态,Up 网络接口已运行,可以传输数据包。
if (interfaces.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 && interfaces.OperationalStatus == OperationalStatus.Up)
{
//GetIPProperties 返回描述此网络接口的配置的对象。
//IPInterfaceProperties 提供有关支持 Internet 协议版本 4 (IPv4) 或 Internet 协议版本 6 (IPv6) 的网络接口的信息。
//UnicastAddresses 获取分配给此接口的单播地址。
foreach (var ip in interfaces.GetIPProperties().UnicastAddresses)
{
//InterNetwork IP 版本 4 的地址。InterNetworkV6 IP 版本 6 的地址。
if (ip.Address.AddressFamily == AddressFamily.InterNetwork)
{
//192. 开头保证获取的是内网地址
if (ip.Address.ToString().StartsWith("192."))
return ip.Address.ToString();
}
}
}
}
return string.Empty;
}
//通过DNS解析本地IP
public static string GetLocalIP_V2()
{
try
{
//获取本地计算机的主机名。
string HostName = Dns.GetHostName();
//将主机名或 IP 地址解析为 IPHostEntry 实例。
IPHostEntry IpEntry = Dns.GetHostEntry(HostName);
//AddressList 获取或设置与主机关联的 IP 地址列表。
for (int i = 0; i < IpEntry

这篇博客详细介绍了C#中的网络编程,包括如何获取本地IP、UDP和Socket的基本使用。通过`GetLocalIP_LAN80211`和`GetLocalIP_V2`方法获取本地IP,利用UdpClient进行UDP广播和接收。还展示了Socket在服务端和客户端的角色,以及如何判断Socket连接状态。最后,给出了局域网聊天的实现思路,利用UDP广播或Socket连接进行通信。

2132

被折叠的 条评论
为什么被折叠?



