SOL_SOCKET、IPPROTO_IP、IPPROTO_TCP和NSPROTO_IPX选项级别
2008-12-19 16:03
471 查看
int[/i][/b] PASCAL[/i] [/i]setsockopt[/i][/b] ( __in SOCKET s,[/i][/b]/*[/i][/b]套接字[/i][/b]*/[/i][/b][/i][/b] __in[/i][/b] [/i]int[/i][/b] [/i]level[/i][/b], [/i][/b]/*[/i][/b]选项级别[/i][/b]*/[/i][/b][/i][/b] __in[/i][/b] [/i]int[/i][/b] [/i]optname[/i][/b],[/i][/b]/* [/i][/b]选项级别[/i][/b]*/[/i][/b][/i][/b] __in[/i][/b] [/i]const[/i][/b] [/i]char[/i][/b] * [/i]optval[/i][/b],[/i][/b]/*[/i][/b] 目标选项的值[/i][/b]*/[/i][/b][/i][/b] __in[/i][/b] [/i]int[/i][/b] [/i]optlen[/i][/b] );[/i]/*[/i] 目标选项的值[/i][/b]*/[/i][/i][/b] | int [/i][/b]PASCAL[/i] [/i]getsockopt[/i][/b]([/i][/b] [/i][/b]__in[/i][/b] SOCKET [/i][/b]s,[/i][/b] /*[/i][/b]套接字[/i][/b]*/[/i][/b][/i][/b] __in[/i][/b] int level,[/i][/b] [/i][/b]/*[/i][/b]选项级别[/i][/b]*/[/i][/b][/i][/b] __in[/i][/b] int optname,[/i][/b] /* [/i][/b]选项级别[/i][/b]*/[/i][/b][/i][/b] __out[/i][/b] char* optval,[/i][/b] /*[/i][/b] 返回目标选项的值[/i][/b]*/[/i][/b][/i][/b] __inout[/i][/b] int[/i][/b] * optlen);[/i][/b] /*[/i] 返回目标选项的值[/i][/b]*/[/i][/i][/b] | |||||||||||||||||||
[/b] | ||||||||||||||||||||
SOL_SOCKET[/b]选项级别[/b] | 选项值类型[/b] | 获取/设置[/b] | Socket[/b]版本[/b] | 说明[/b] | ||||||||||||||||
SO_ACCEPTCONN | 布尔值 | 只能获取 | 1+ | 如为TRUE(真) ,表明套接字处于监听模式Chapter 9 [/i]Page 1[/i] | ||||||||||||||||
SO_BROADCAST | 布尔值 | 两种均可 | 1+ | 如TRUE,表明套接字已配置成对广播消息进行发送Chapter 9 [/i]Page 2~3[/i] | ||||||||||||||||
SO_CONNECT_TIME | 整数 | 只能获取 | 1+ | 返回套接字建立连接的时间,以秒为单位,如尚未连接,返回0xffffffff (微软专用) Chapter 9 Page 3 | ||||||||||||||||
SO_DEBUG | 布尔值 | 两者均可 | 1+ | 如果TRUE,就允许调试输出 (W32不支持) Chapter 9 [/i]Page 3[/i] | ||||||||||||||||
SO_DONTLINGER | 布尔值 | 两者均可 | 1+ | 如果是TRUE,则禁用SO_LINGER Chapter 9 [/i]Page 3[/i] | ||||||||||||||||
SO_LINGER | struct linger | 两者均可 | 1+ | 设置或获取当前的拖延值Chapter 9 [/i]Page 5~6[/i] | ||||||||||||||||
SO_DONTROUTE | 布尔值 | 两者均可 | 1+ | 如果TRUE,便直接向网络接口发送消息,毋需查询路由表 (微软无效) [/i]Chapter 9 [/i]Page 4[/i] | ||||||||||||||||
SO_ERROR | 布尔值 | 只能获得 | 1+ | 返回错误状态Chapter 9 [/i]Page 4[/i] | ||||||||||||||||
SO_EXCLUSIVEADDRUSE | 布尔值 | 两者均可 | 2+ | 如果TRUE,套接字绑定那个本地端口就不能重新被另一个进程使用Chapter 9 [/i]Page 4~5[/i] | ||||||||||||||||
SO_KEEPALIVE | 布尔值 | 两者均可 | 1+ | 如果TRUE,套接字就会进行配置,在会话过程中发送”保持活动”消息Chapter 9 [/i]Page 5[/i] | ||||||||||||||||
SO_MAX_MSG_SIZE | 无符号整数 | 只能获取 | 2+ | 对一个面向消息的套接字来说,一条消息的最大长度Chapter 9 [/i]Page 6[/i] | ||||||||||||||||
SO_OOBINLINE | 布尔值 | 两者均可 | 1+ | 如果是TRUE,带外数据就会在普通数据流中返回 (W32不支持) Chapter 9 [/i]Page 6[/i] | ||||||||||||||||
SO_PROTOCOL_INFO | WSAPROTOCOL_INFO | 只能获得 | 2+ | 套接字绑定的那种协议的特征Chapter 9 [/i]Page 7[/i] | ||||||||||||||||
SO_RCVBUF | 整数 | 两者均可 | 1+ | 面向接收操作,为每个套接字分别获取或设置缓冲区长度Chapter 9 [/i]Page 7[/i] | ||||||||||||||||
SO_REUSEADDR | 布尔值 | 两者均可 | 1+ | 如果是TRUE,套接字就可与一个正由其他套接字使用的地址绑定到一起,或与处在T IME_WAIT状态的地址绑定到一起Chapter 9 [/i]Page 7~8[/i] | ||||||||||||||||
SO_SNDBUF | 布尔值 | 两者均可 | 1+ | 设置分配给套接字的数据发送缓冲区的大小 Chapter 9 [/i]Page 8[/i] | ||||||||||||||||
SO_TYPE | 整数 | 只能获取 | 1+ | 返回指定套接字的类型(如SOCK_DGRAM和SOCK_STREAM等等)Chapter 9 [/i]Page 8[/i] | ||||||||||||||||
SO_SNDTIMEO | 整数 | 两者均可 | 1+ | 获取或设置套接字上的数据发送超时时间(以毫秒为单位)Chapter 9 [/i]Page 8[/i] | ||||||||||||||||
SO_RCVTIMEO | 整数 | 两者均可 | 1+ | 获取或设置与套接字上数据接收对应的超时时间值(以毫秒为单位) Chapter 9 [/i]Page 9[/i] | ||||||||||||||||
SO_UPDATE_ACCEPT_CONTEXT | SOCKET | 两者均可 | 1+ | 更新SOCKET状态 Chapter 9 [/i]Page 9[/i] | ||||||||||||||||
IPPROTO_IP[/b]选项级别[/b] | 选项值类型[/b] | 获取/设置[/b] | Socket[/b]版本[/b] | 说明[/b] | ||||||||||||||||
IP_OPTIONS | char[] | 两者均可 | 1+ | 设置或获取I P头内的I P选项 Chapter 9 [/i]Page 16~17[/i] | ||||||||||||||||
IP_HDRINCL | 布尔值 | 两者均可 | 2+ | 如果是TRUE,IP头就会随即将发送的数据一起提交,并从读取的数据中返回,如下表 Chapter 9 [/i]Page 18[/i][/i] | ||||||||||||||||
表IP_HDRINCL:[/u][/i] Chapter 9 [/i]Page 18[/i][/i]
| ||||||||||||||||||||
IP_TOS | 整数 | 两者均可 | 1+ | IP服务类型Chapter 9 [/i]Page 19[/i] | ||||||||||||||||
IP_TTL | 整数 | 两者均可 | 1+ | I P协议的“存在时间” (TTL)参数Chapter 9 [/i]Page 19[/i] | ||||||||||||||||
IP_MULTICAST_IF | 无符号长整数 | 两者均可 | 1+ | 获取或设置打算从它上面发出多播数据的本地接口 Chapter 9 [/i]Page 20[/i] | ||||||||||||||||
IP_MULTICAST_TTL | 整数 | 两者均可 | 1+ | 为套接字获取或设置多播数据包的存在时间Chapter 9 [/i]Page 20[/i] | ||||||||||||||||
IP_MULTICAST_LOOP | 布尔值 | 两者均可 | 1+ | 如果TRUE,发至多播地址的数据将原封不动地“反射”或“反弹”回套接字的进入缓冲区 Chapter 9 [/i]Page 20[/i] | ||||||||||||||||
IP_ADD_MEMBERSHIP | struct ip_mreq | 只能设置 | 1+ | 在指定的I P组内为套接字赋予成员资格 Chapter 9 [/i]Page 20[/i] | ||||||||||||||||
IP_DROP_MEMBERSHIP | struct ip_mre1 | 只能设置 | 1+ | 将套接字从指定的I P组内删去(撤消成员资格)Chapter 9 [/i]Page 20[/i] | ||||||||||||||||
IP_DONTFRAGMENT | 布尔值 | 两者均可 | 1+ | 如果是TRUE,就不对I P数据报进行分段Chapter 9 [/i]Page 20[/i] | ||||||||||||||||
IPPROTO_TCP[/b]选项级别[/b] | 选项值类型[/b] | 获取/设置[/b] | Socket[/b]版本[/b] | 说明[/b] | ||||||||||||||||
TCP_NODELAY | 布尔值 | 两者均可 | 1+ | 若为TRUE, 就会在套接字上禁用Nagle算法 (只适用于流式套接字) Chapter 9 [/i]Page 21[/i] | ||||||||||||||||
NSPROTO_IPX[/b]选项级别[/b] | 选项值类型[/b] | 获取/设置[/b] | Socket[/b]版本[/b] | 说明 (仅适用于Microsoft IPX/SPX)[/b] | ||||||||||||||||
IPX_PTYPE | 整数 | 两者均可 | 1+ | 获取或设置I P X包的类型Chapter 9 [/i]Page 21[/i] | ||||||||||||||||
IPX_FILTERPTYP | 整数 | 两者均可 | 1+ | 获取或设置准备过滤的IPX包之类型Chapter 9 [/i]Page 22[/i] | ||||||||||||||||
IPX_STOPFILTERPTYPE | 整数 | 只能设置 | 1+ | 删除为指定IPX包设置的过滤器Chapter 9 [/i]Page 22[/i] | ||||||||||||||||
IPX_DSTYPE | 整数 | 两者均可 | 1+ | 获取或设置SPX头中的数据流字段值Chapter 9 [/i]Page 22[/i] | ||||||||||||||||
IPX_EXTENDED_ADDRESS | 布尔值 | 两者均可 | 1+ | 如果是TRUE,便允许对I P X包进行扩展定址Chapter 9 [/i]Page 22[/i] | ||||||||||||||||
IPX_RECVHDR | 布尔值 | 两者均可 | 1+ | 如果是T R U E,就随接收调用一起,返回IPX头Chapter 9 [/i]Page 22[/i] | ||||||||||||||||
IPX_MAXSIZE | 整数 | 只能获取 | 1+ | 返回I P X数据报的最大长度Chapter 9 [/i]Page 22[/i] | ||||||||||||||||
IPX_ADDRESS | IPX_ADDRESS_DATA | 只能获取 | 1+ | 返回具备I P X能力之适配器的有关信息Chapter 9 [/i]Page 22[/i] | ||||||||||||||||
IPX_GETNETINFO | IPX_NETNUM_DATA | 只能获取 | 1+ | 返回与一个指定I P X网络编号有关的信息Chapter 9 [/i]Page 23[/i] | ||||||||||||||||
IPX_GETNETINFO_NORIP | IPX_ADDRESS_DATA | 两者均可 | 1+ | 返回与一个指定I P X网络编号有关的信息Chapter 9 [/i]Page 23[/i] | ||||||||||||||||
IPX_SPXGETCONNECTIONSTATUS | IPX_SPXCONNSTATUS_ DATA | 只能获取 | 1+ | 返回与一个已建立连接的S P X套接字有关的信息 Chapter 9 [/i]Page 23[/i] | ||||||||||||||||
IPX_ADDRESS_NOTIFY | IPX_ADDRESS_DATA | 只能获取 | 1+ | 若I P X适配器的状态发生改变,则发出异步通知 Chapter 9 [/i]Page 24[/i] | ||||||||||||||||
IPX_MAX_ADAPTER_NUM | 整数 | 只能获取 | 1+ | 返回存在的IPX适配器个数Chapter 9 [/i]Page 24~25[/i] | ||||||||||||||||
IPX_RERIPNETNUMBER | IPX_NETNUM_DATA | 只能获取 | 1+ | 返回一个网络编号的相关信息Chapter 9 [/i]Page 25[/i] | ||||||||||||||||
IPX_RECEIVE_BROADCAST | 布尔值 | 只能设置 | 1+ | 如果是TRUE,就不接收IPX广播包Chapter 9 [/i]Page 25[/i] | ||||||||||||||||
PX_IMMEDIATESPXZCK | 布尔值 | 两者均可 | 1+ | 如果是TRUE,就不在SPX连接上延迟发送ACK Chapter 9 [/i]Page 25~26[/i] | ||||||||||||||||
int[/i][/b] [/i]WSAAPI[/i][/b] [/i][/b]WSAIoctl[/i][/b]( __in SOCKET s, [/i][/b]/*[/i][/b]套接字[/i][/b]*/[/i][/b][/i][/b] [/i]__in[/i][/b] [/i]DWORD[/i][/b] [/i]dwIoControlCode[/i][/b], [/i][/b]/*[/i][/b]预定义的标志[/i][/b]*/[/i][/b][/i][/b] [/i]__in_bcount_opt[/i][/b](cbInBuffer) LPVOID lpvInBuffer, [/i][/b]/*[/i][/b]指向传递进入的值[/i][/b]*/[/i][/b][/i][/b] [/i]__in[/i][/b] [/i]DWORD[/i][/b] [/i]cbInBuffer[/i][/b], [/i][/b]/*[/i][/b]传入[/i][/b]数据的多少[/i][/b]*/[/i][/b][/i][/b] [/i]__out_bcount_part_opt[/i][/b](cbOutBuffer, *lpcbBytesReturned) LPVOID lpvOutBuffer, [/i][/b]/*[/i][/b]返回信息缓冲区[/i][/b]*/[/i][/b][/i][/b] [/i]__in[/i][/b] [/i]DWORD[/i][/b] [/i]cbOutBuffer[/i][/b], [/i][/b]/*[/i][/b]缓冲区的字节长度[/i][/b]*/[/i][/b][/i][/b] [/i]__out[/i][/b] [/i]LPDWORD[/i][/b] [/i]lpcbBytesReturned[/i][/b], [/i][/b]/*[/i][/b]实际返回的字节数[/i][/b]*/[/i][/b][/i][/b] [/i]__in_opt[/i][/b] [/i]LPWSAOVERLAPPED[/i][/b] [/i]lpOverlapped[/i][/b], [/i][/b]/*[/i][/b]重叠[/i][/b]I/O [/i][/b]*/[/i][/b][/i][/b] [/i]__in_opt[/i][/b] [/i]LPWSAOVERLAPPED_COMPLETION_ROUTINE[/i][/b] [/i]lpCompletionRoutine[/i][/b]); [/i]/*[/i][/b]重叠[/i][/b]I/O[/i][/b]回调函数[/i][/b]*/[/i][/b][/b] | ||||||||||||||||||||
int[/i][/b] [/i]PASCAL FAR[/i][/b] [/i]ioctlsocket[/i][/b]( [/i]__in[/i][/b] [/i]SOCKET[/i][/b] [/i]s[/i][/b], [/i][/b]/*[/i][/b]套接字[/i][/b]*/[/i][/b][/i][/b] [/i]__in[/i][/b] [/i]long[/i][/b] [/i]cmd[/i][/b], [/i][/b]/*[/i][/b]预定义的标志[/i][/b]*/[/i][/b][/i][/b] [/i]__inout[/i][/b] [/i]u_long[/i][/b] [/i]FAR[/i][/b] *[/i]argp[/i][/b]); [/i][/b]/*[/i][/b]命令参数[/i][/b]*/[/i][/b] | ||||||||||||||||||||
IO[/b]控制命令[/b] | 函数[/b] | 输入[/b] | 输出[/b] | Socket[/b]版本[/b] | 说明[/b] | |||||||||||||||
标准I/O控制命令 | ||||||||||||||||||||
FIONBIO | ioctlsocket/WSAIoct | 无符号长整数 | 无 | 1+ | 将套接字置入非锁定模式, 而若设为0值,意味着套接字进入锁定模式 Chapter 9 [/i]Page 26[/i] | |||||||||||||||
FIONREAD | 两者均可 | 无 | 无符号长整数 | 1+ | 返回在套接字上存在的数据量Chapter 9 [/i]Page 26[/i] | |||||||||||||||
SIOCATMARK | 两者均可 | 无 | 布尔值 | 1+ | 判断是否已读取了带外数据Chapter 9 [/i]Page 26~27[/i] | |||||||||||||||
其他I/O控制命令 | ||||||||||||||||||||
SIO_ENABLE_CIRCULAR-QUEUEING | WSAIoct | 布尔值 | 布尔值 | 2+ | 如接收缓冲区队列溢出,则首先丢弃最早收到的消息 Chapter 9 [/i]Page 27[/i] | |||||||||||||||
SIO_FIND_ROUTE | WSAIoct | SOCKADDR | 布尔值 | 2+ | 验证到指定地址的路由是否存在(W32不支持) Chapter 9 [/i]Page 27[/i] | |||||||||||||||
SIO_FLUSH | WSAIoct | 无 | 无 | 2+ | 判断是否已读取OOB数据Chapter 9 [/i]Page 27[/i] | |||||||||||||||
SIO_BROADCAST_ADDRESS | WSAIoct | 无 | SOCKADDR | 2+ | 为套接字地址家族返回一个广播地址Chapter 9 [/i]Page 28[/i] | |||||||||||||||
SIO_GET_EXTENSION_FUNCTION_POINTER | WSAIoct | GUID | 函数指针 | 2+ | 取得基层提供者特有一个函数指针Chapter 9 [/i]Page 28[/i] | |||||||||||||||
SIO_CHK_QOS | WSAIoct | DWORD | DWORD | 2+ | 为指定的套接字设置QOS属性Chapter 9 [/i]Page 28[/i] | |||||||||||||||
SIO_GET_QOS | WSAIoct | 无 | QOS | 2+ | 返回与套接字关联在一起的QOS结构Chapter 9 [/i]Page 29[/i] | |||||||||||||||
SIO_SET_QOS | WSAIoct | QOS | 无 | 2+ | 为指定套接字设置QOS属性Chapter 9 [/i]Page 29[/i] | |||||||||||||||
SIO_MULTIPOINT_LOOPBACK | WSAIoct | 布尔值 | 布尔值 | 2+ | 设置或调查多播数据是否循环返回套接字Chapter 9 [/i]Page 29[/i] | |||||||||||||||
SIO_MULTICAST_SCOPE | WSAIoct | 整数 | 整数 | 2+ | 设置或获取多播数据的存在时间值Chapter 9 [/i]Page 29~30[/i] | |||||||||||||||
SIO_KEEPLIVE_VALS | WSAIoct | tcp_keepalive | tcp_keepalive | 2+ | 针对每一个连接,分别设置其TCP"保持活动”周期 Chapter 9 [/i]Page 30[/i] | |||||||||||||||
SIO_RCVALL | WSAIoct | 无符号整数 | 无 | 2+ | 接收网络上的所有数据包Chapter 9 [/i]Page 30[/i] | |||||||||||||||
SIO_RCVALL_MCAST | WSAIoct | 无符号整数 | 无 | 2+ | 接收网络上的所有多播数据包Chapter 9 [/i]Page 30[/i] | |||||||||||||||
SIO_RCVALL_IGMPMCAST | WSAIoct | 无符号整数 | 无 | 2+ | 接收网络上的所有IGMP数据包Chapter 9 [/i]Page 31[/i] | |||||||||||||||
SIO_ROUTING_INTERFACE_QUERY | 两者均可 | SOCKADDR | 无 | 2+ | 可找到用来向远程机器发送数据的那个本地接口的地址 Chapter 9 [/i]Page 31[/i] | |||||||||||||||
SIO_ROUTING_INTERFACE_CHANGE | WSAIoct | SOCKADDR | 无 | 2+ | 与一个端点连接的接口发生改变后,发出通知 Chapter 9 [/i]Page 31[/i] | |||||||||||||||
SIO_ADDRESS_LIST_QUERY | WSAIoct | 无 | SOCKET_ADDRESS_LIST | 2+ | 返回套接字绑定的一系列接口的列表Chapter 9 [/i]Page 32[/i] | |||||||||||||||
SIO_ADDRESS_LIST_CHANGE | WSAIoct | 无 | 无 | 2+ | 本地接口发生变化时,发出通知Chapter 9 [/i]Page 32[/i] | |||||||||||||||
IO_GET_INTERFACE_LIST | WSAIoct | 无 | INTERFCE_INFO[] | 2+ | 返回本地接口列表Chapter 9 [/i]Page 33[/i] | |||||||||||||||
安全套接字层的I/O控制命令 (Windows 95/98、Windows NT以及Windows 2000 均不支持) | ||||||||||||||||||||
SO_SSL_GET_CAPABILITIES | WSAIoct | 无 | DWORD | 1 | 返回Winsock安全提供者的功能,仅定义了SO_CAP_CLIENT标志 Chapter 9 [/i]Page 33[/i] | |||||||||||||||
SO_SSL_GET_FLAGS | WSAIoct | 无 | DWORD | 1 | 返回与套接字对应的s信道特有标志Chapter 9 [/i]Page 34[/i] | |||||||||||||||
SO_SSL_SET_FLAGS | WSAIoct | DWORD | 无 | 1 | 设置套接字s信道特有标志Chapter 9 [/i]Page 34[/i] | |||||||||||||||
SO_SSL_GET_PROTOCOLS | WSAIoct | 无 | SSLPROTOCOLS | 1 | 返回安全提供者支持的协议列表Chapter 9 [/i]Page 34[/i] | |||||||||||||||
SO_SSL_SET_PROTOCOLS | WSAIoct | SSLPROTOCOLS | 无 | 1 | 设置基层提供者应当支持的一个协议列表Chapter 9 [/i]Page 34[/i] | |||||||||||||||
SO_SSL_SET_VALIDATE_CERT_HOOK | WSAIoct | SSLVALIDATECERTHOOK | 无 | 1 | 为SSL身份凭据的接受设置校验函数Chapter 9 [/i]Page 34[/i] | |||||||||||||||
SO_SSL_PERFORM_HANDSHAKE | WSAIoct | 无 | 无 | 1 | 在已建立连接的套接字上开始安全联络操作 Chapter 9 [/i]Page 35[/i] | |||||||||||||||
ATM I/O控制命令 | ||||||||||||||||||||
SIO_GET_NUMBER_OF_ATM_DEVICES | WSAIoct | 无 | DWORD | 2+ | 返回ATM适配器的数量Chapter 9 [/i]Page 35[/i] | |||||||||||||||
SIO_GET_ATM_ADDRESS | WSAIoct | DWORD | ATM_ADDRESS | 2+ | 为指定设备返回ATM地址Chapter 9 [/i]Page 35[/i] | |||||||||||||||
SIO_ASSOCIATE_PVC | WSAIoct | ATM_PVC_PARAMS | 无 | 2+ | 将套接字与一个永久虚拟回路关联起来Chapter 9 [/i]Page 35[/i] | |||||||||||||||
SIO_GET_ATM_CONNECTION_ID | 两者均可 | 无 | ATM_CONNECTION_ID | 2+ | 获取同套接字关联在一起的ATM连接ID Chapter 9 [/i]Page 36[/i] |
相关文章推荐
- SOL_SOCKET、IPPROTO_IP、IPPROTO_TCP和NSPROTO_IPX选项级别
- UNIX网络编程——常用套接字选项(SOL_SOCKET级别)
- 常用套接字选项(SOL_SOCKET级别)
- UNIX网络编程——套接字选项(SOL_SOCKET级别)
- UNIX网络编程——套接字选项(SOL_SOCKET级别)
- Linux下的TCP/IP编程----socket的可选项
- UNIX网络编程——套接字选项(SOL_SOCKET级别)
- 常用套接字选项(SOL_SOCKET级别)
- 简单理解TCP/IP、Http、Socket、webSocket的区别
- TCP/IP Socket HTTP
- TCP/IP,http,socket,长连接,短连接——小结。
- TCP/IP,http,socket,长连接,短连接
- TCP/IP_Socket编程 - 简介
- 简述Socket,IP,TCP三次握手,HTTP协议(有助于理解、记忆和学习)
- socket跟TCP/IP 的关系,单台服务器上的并发TCP连接数可以有多少
- http与https与socket tcp/IP与UDP 协议等
- 聊聊Socket、TCP/IP、HTTP、FTP及网络编程 未完
- TCP/IP,Http,Socket,XMPP的区别
- TCP/IP、Http、Socket的区别(转)
- 基于TCP/IP的网络编程接口:Socket