std.net 包

功能介绍

net 包用于进行网络通信,提供启动 Socket 服务器、连接 Socket 服务器、发送数据、接收数据等功能和 IP 地址、IP前缀(又称IP子网)、Socket 地址的相关数据结构。

我们支持 UDP/TCP/UDS 三种 Socket 类型,用户可按需选用。

UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输协议,它不提供可靠性和流量控制,但是具有较低的延迟和较小的网络开销。UDP协议主要用于一些实时性要求高的应用场景,例如视频直播、在线游戏等。

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的传输协议。它提供了可靠的数据传输、流量控制、拥塞控制、错误检测和流量管理等功能,是互联网中最常用的传输协议之一。

UDS(Unix Domain Socket)是一种用于在同一台计算机上的进程之间进行通信的机制。与网络套接字不同,UDS不需要网络协议栈和网络设备,因此可以更快地进行通信,具有更低的延迟和更高的吞吐量。

如下为本库提供 Socket 的类继承关系:

Hierarchy
 Resource
 ├StreamingSocket
 │   ├TcpSocket
 │   └UnixSocket
 │
 ├DatagramSocket
 │   ├UdpSocket
 │   └UnixDatagramSocket
 │
 └ServerSocket
     ├TcpServerSocket
     └UnixServerSocket

API 列表

常量&变量

常量&变量名功能
IPV4_ALL_ROUTERIPv4 预留的组播地址。
IPV4_ALL_SYSTEMIPv4 多播地址。
IPV4_BROADCASTIPv4 广播地址。
IPV4_LOCAL_HOSTIPv4 本地地址。
IPV4_ZEROIPv4 通用地址。
IPV6_INTERFACE_LOCAL_ALL_NODESIPv6 在节点本地范围的所有节点多播地址。
IPV6_LINK_LOCAL_ALL_NODESIPv6 在链路本地范围的所有节点多播地址。
IPV6_LINK_LOCAL_ALL_ROUTERSIPv6 链路本地范围的所有路由器多播地址。
IPV6_LOOPBACKIPv6 环回地址(本地地址)。
IPV6_ZEROIPv6 通用地址。

接口

接口名功能
DatagramSocketDatagramSocket 是一种接收和读取数据包的套接字。
ServerSocket提供服务端的 Socket 需要的接口。
StreamingSocket双工流模式下的运行的 Socket,可被读写。

类名功能
IPAddress此类表示Internet协议(IP)地址。
IPPrefix这个类表示一个 IP 前缀(也称为“IP子网”),即一个连续的 IP 地址块,边界为2的幂。
IPSocketAddress此类实现了IP协议 Socket 地址(IP地址+端口号)。
IPv4Address此类表示 Internet 协议版本4(IPv4)地址。
IPv6Address此类表示 Internet 协议版本6(IPv6)地址。
RawSocketRawSocket 提供了套接字的基本功能。
SocketAddress此类表示协议无关的 Socket 地址。
TcpServerSocket监听 TCP 连接的服务端。
TcpSocket请求 TCP 连接的客户端。
UdpSocket提供 udp 报文通信。
UnixDatagramSocket提供基于数据包的主机通讯能力。
UnixServerSocket提供基于双工流的主机通讯服务端。
UnixSocket提供基于双工流的主机通讯客户端。
UnixSocketAddress此类实现了 Unix Domain Socket 地址。

枚举

枚举名功能
SocketNet传输层协议类型。

结构体

结构体名功能
AddressFamily地址族用于在个别地址的使用可能不明确的上下文中标识用于网络通信的个别网络地址方案或编号计划。
OptionLevel提供了常用的套接字选项级别。
OptionName提供了常用的套接字选项。
ProtocolType提供了常用的套接字协议,以及通过指定 Int32 值来构建套接字协议的功能。
RawAddress提供了 RawSocket 的通信地址创建和获取功能。
SocketDomain提供了常用的套接字通信域,以及通过指定 Int32 值来构建套接字通信域的功能。
SocketKeepAliveConfigTCP KeepAlive 属性配置。
SocketOptionsSocketOptions 存储了设置套接字选项的一些参数常量方便后续调用。
SocketType提供了常用的套接字类型,以及通过指定 Int32 值来构建套接字类型的功能。

异常类

异常类名功能
SocketException提供套接字相关的异常处理。
SocketTimeoutException提供字符格式相关的异常处理。