标准TCPIP编程接口

标准TCPIP编程接口

ID:39297272

大小:428.81 KB

页数:100页

时间:2019-06-29

标准TCPIP编程接口_第1页
标准TCPIP编程接口_第2页
标准TCPIP编程接口_第3页
标准TCPIP编程接口_第4页
标准TCPIP编程接口_第5页
资源描述:

《标准TCPIP编程接口》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第17章标准TCP/IP编程接口—Socket第17章标准TCP/IP编程接口—Socket17.1套接口概述17.2地址与地址操作函数17.2.1INET协议族地址结构—sockaddr_in 17.2.2IPv4地址结构—in_addr17.2.3通用地址结构—sockaddr17.2.4地址操作函数17.3端口17.4字节序问题17.5三种套接口类型和两种I/O模式17.5.1套接口的类型17.5.2I/O模式第17章标准TCP/IP编程接口—Socket17.6基本套接口函数17.7简单的客户端程序17.6.1WSA

2、Startup17.7.1UDP客户端17.6.2socket17.7.2TCP客户端17.6.3bind 17.6.4listen. 17.6.5accept 17.6.6conect17.6.7recv和send 17.6.8recvfrom和sendto17.6.9closesocket17.6.10WSACleanup17.1套接口概述Berkeleysockets接口在windows平台上的移植版本称为Winsock。最初的伯克利套接口API在windows平台上的移植版本是Winsock1.1,在它的基础上,微软

3、又进一步提供了Winsock2.0从用户的角度来看,套接口是网络通信端点的一种抽象概念,为用户提供一种发送和接收数据的机制。是一种进程间通信的机制,适用于分布式环境。17.2.1INET协议地址结构—sockaddr_instructsockaddr_in{Shortsin_family;U_shortsin_port;Structin_addrsin_addr;Charsin_zero[8];};地址族,一般填AF_INET16位IP端口32位IP地址8个字节的0填充,给结构体初始化清0的函数如下Void*memset(v

4、oid*dest,intc,size_tcount);所以是TCP/IP17.2.2IPv4地址结构—in_addrstructin_addr{Union{struct{u_chars_b1,s_b2,s_b3,s_b4;}s_un_b;struct{u_shorts_w1,s_w2;}s_un_w;u_longs_addr;}s_un;#define…………};如多网卡,又不关心接口(INADDR_ANY的使用,P184)202.119.9.199赋值时的不同分段(4、2、1)INET协议地址结构中的IP地址部分17.2.

5、3通用地址结构—sockaddrstructsockaddr{u_shortsa_family;charsa_data[14];};一种是只为TCP/IP,另外是为了提供通用接口以服务多种网络协议开发的通用结构,但要提供足够的信息说明自己的协议,复杂!例如:Intconnetct(sockets,conststructsockaddrFAR*name,intnamelen)对于程序员来说,很少直接使用这种通用地址结构。连接时不是structsockadr_in*而是通用地址结构17.2.4地址操作函数3个常用的地址操作函数:

6、将点分格式的IPv4地址字符串转化为in_addr地址结构适用的32位整数:unsignedlonginet_addr(constcharFAR*cp);将in_addr地址值转化为标准的点分IP地址字符串:charFAR*inet_ntoa(structin_addrin);域名解析功能:structhostentFAR*gethostbyname(constcharFAR*name);注意:在使用winsock函数之前,应用程序必须首先调用WSAStartup函数初始化ws2_32.dll,而在应用结束后必须调用WSAC

7、leanup函数关闭。Hostent结构structhostent{charFAR*h_name;/*officialnameofhost*/charFAR*FAR*h_aliases;/*aliaslist*/shorth_addrtype;/*hostaddresstype*/shorth_length;/*lengthofaddress*/charFAR*FAR*h_addr_list;/*listofaddresses*/#defineh_addrh_addr_list[0]/*address,forbackward

8、compat*/};17.3端口0:不使用1~1023:知名端口1024~5000:可以被任意客户端程序使用5001~65535:为其他服务器程序预留17.4字节序问题字节顺序转换htons()—"HosttoNetworkShort“(16bit)htonl()—"HosttoNetwo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。