std.socket 包

功能介绍

socket 包用于进行网络通信,提供启动 Socket 服务器、连接 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_BROADCASTIPV4 广播地址。
IPV4_ALL_SYSTEMIPV4 多播地址。
IPV4_ALL_ROUTERIPV4 预留的组播地址。
IPV4_ZEROIPV4 通用地址。
IPV4_LOCAL_HOSTIPV4 本地地址。
IPV6_ZEROIPV6 通用地址。
IPV6_LOOPBACKIPV6 环回地址(本地地址)。
IPV6_INTERFACE_LOCAL_ALL_NODESIPv6 在节点本地范围的所有节点多播地址。
IPV6_LINK_LOCAL_ALL_NODESIPv6 在链路本地范围的所有节点多播地址。
IPV6_LINK_LOCAL_ALL_ROUTERSIPv6 链路本地范围的所有路由器多播地址。

接口

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

类名功能
IPMaskIP 掩码,操作 IP 地址和路由地址。
RawSocketRawSocket 提供了套接字的基本功能。
SocketAddress具有特定类型、地址和端口的套接字地址。
SocketAddressWithMask提供带有掩码的 SocketAddress
TcpServerSocket监听 TCP 连接的服务端。
TcpSocket请求 TCP 连接的客户端。
UdpSocket提供 udp 报文通信。
UnixDatagramSocket提供基于数据包的主机通讯能力。
UnixServerSocket提供基于双工流的主机通讯服务端。
UnixSocket提供基于双工流的主机通讯客户端。

枚举

枚举名功能
SocketAddressKind互联网通信协议种类。
SocketNet传输层协议类型。

结构体

结构体名功能
OptionLevel提供了常用的套接字选项级别。
OptionName提供了常用的套接字选项。
ProtocolType提供了常用的套接字协议,以及通过指定 Int32 值来构建套接字协议的功能。
RawAddress提供了 RawSocket 的通信地址创建和获取功能。
SocketDomain提供了常用的套接字通信域,以及通过指定 Int32 值来构建套接字通信域的功能。
SocketKeepAliveConfigTCP KeepAlive 属性配置。
SocketOptionsSocketOptions 存储了设置套接字选项的一些参数常量方便后续调用。
SocketType提供了常用的套接字类型,以及通过指定 Int32 值来构建套接字类型的功能。

异常类

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