Linux网络编程一步一步学
文件大小: 442k
源码售价: 10 个金币 积分规则     积分充值
资源说明:#Socket简介 是一个编程接口 是一种特殊的文件描述符(everything in Unix is a file) 并不仅限于TCPIP协议 面向连接(Transmission Control Protocol - TCPIP) 无连接(User Datagram Protocol-UDP 和 Inter-Network Packet Exchange-IPX) #Socket类型 流式套接字(SOCK_STREAM) 提供了一个面向连接,可靠的数据传输服务,数据无差错,无重复的发送且 按发送顺序接收。内设置流量控制,避免数据流淹没慢的接收方。数据被看作是 字节流,无长度限制 数据报套接字(SOCK_DGRAM) 提供无连接服务。数据包以独立数据包的形式被发送,不提供无差错保证, 数据可能丢失或重复,顺序发送,可能乱序接收 原始套接字(SOCK_RAW) 可以对较低层次协议如IP,ICMP直接访问 #IP地址 IP地址是Internet中主机的标识 Internet中的主机要与别的机器通信必须具有一个IP地址 IP地址为32位(IPV4)或者128位(IPV6) 每个数据包都必须携带目的IP地址和源IP地址,路由器依靠此信息为数据包 选择路由 表示形式:常用点分形式,如202.38.64.10,最后都会转换为一个32位的无符号 整数。 #IP地址的转换 inet_aton() 将strptr所指的字符串转换成32位的网络字节序二进制值 int inet_aton(const char *strptr, struct in_addr *addrptr); inet_addr() 功能同上,返回转换后的地址 in_addr_t inet_addr(const char *strptr); inet_ntoa() 将32位网络字节序二进制地址转换成点分十进制的字符串。 char *inet_ntoa(struct in_addr inaddr); #端口号 为了区分一台主机接收到的数据包应该转交给哪个进程来进行处理,使用端口号 来区分 TCP端口号与UDP端口号独立(协议不同可以使用同一个端口) 三无组:协议,IP,端口 端口号一般由IANA(Internet Assigned Numbers Authority)管理 众所周知端口:1~1023(1~255之间为众所周知端口,256~1023端口通常由 UNIX系统占用 已登记端口:1024~49151 动态或私有端口:49152~65535
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。