- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络程序设计复习总结
读程序 15 x2=30分 15个空,写注释要详细
判断 10 x1=10分
简答 50分7道
编程 10分 头文件,main主函数2分
第1章 TCP/IP简介
1.网络编程是指编写的网络通信程序可以与网络上的其他程序进行通信.
(1)C/S模型:(Client/Server),即客户机和服务器结构。:(Browser/Server),即浏览器和服务器结构。
Linux :etc 下services
第2章 套接字编程简介
1.套接字类型是指创建套接字的应用程序要使用的通信服务的类型。Linux系统最常用的有3种:
(1)SOCK_STREAM:流式套接字,提供面向连接,可靠的数据传输服务,数据按字节流,按顺序收发,保证数据在传输过程中无丢失,无冗余。(TCP协议支持)
(2)SOCK_DGRAM:数据报套接字,提供面向无连接的服务,数据收发无序,不能保证数据的准确到达。(UDP协议支持)
(3)SOCK_RAW:原始套接字。允许对低于传输层的协议或物理网络直接访问。常用于检测新的协议。
2.字节存储的顺序分为两类:
(1)小端字节序:将低序字节存储在起始地址。
(2)大端字节序:将高序字节存储在起始地址。
例如:0 小端顺序:78 大端顺序:12
56 34
34 56
12 78
3.主机字节序和网络字节序之间的相互转换,要用到4个函数:
(1)htons:将16位的短整型数从主机字节序转换成网络字节序。
(2)htonl:将32位的长整型数从主机字节序转换成网络字节序。
(3)ntohs:将16位的短整型数从网络字节序转换成主机字节序。
(4)ntohl:将32位的长整型数从网络字节序转换成主机字节序。
h代表主机host, n代表网络network, s代表短整型short, l代表长整型long。
4.Liunx系统提供的字符串IP和二进制值IP相互转换的地址转换函数:
int inet_aton(const char * str,struct in_addr *numstr);
char *inet_ntoa(struct in_addr inaddr);
函数中a代表ASCII串,n代表数值格式,是存在于套接字地址结构中的二进制值。
5.IPv4套接字地址结构名字是sockaddr_in,其中的各个成员变量作用如下(代码略):
1)sin_len是长度,存储套接字地址结构的长度;
2)sin_family是internet地址族,在IPv4中是AF_INET;
3)sin_port是端口号,以网络字节序存储;
4)sin_addr是一个结构,该结构里的成员存储IP地址;
5)sin_zero成员暂时没有被使用;
6)in_addr结构中的s_addr成员存储的网络字节序32位IPv4地址;
第3章 基本TCP套接字编程
1.P22图3-1:
TCP套接字编程中,服务器端实现的步骤:
(1)使用socket()函数创建套接字;
(2)将创建的套接字绑定到指定的地址结构;
(3)listen()函数设置套接字为监听模式,使服务器进入被动打开的状态;
(4)接受客户端的连接请求,建立连接;
(5)接收,应答客户端的数据请求;
(6)终止连接。
客户端实现的步骤:
(1)使用socket()函数创建套接字;
(2)调用connect()函数建立一个与TCP服务器的连接;
(3)发送数据请求,接收服务器的数据应答;
(4)终止连接。
2.socket()函数:产生TCP套接字,作为TCP通信的传输端点。
int socket(int family,int type,int protocol);
family:确定了socket使用的协议类型,值 AF_INET:IPv4协议;AF_INET6:IPv6协议;
AF_INET:IPv4协议。
Type:套接字类型,值: SOCK_STREAM:字节流套接口(TCP);
SOCK_DGRAM:数据报套接口(UDP);
SOCK_RAW:原始套接口。
Protocol:协议标志,一般值为零,如果是原始套接字就要为protocol定一个常值。
3.connect()函数:用于激发TCP的三次握手过程,建立与远程服务器的连接。
int connect(int sockfd,const struct sockaddr *addr,socklen_t addrlen);
socketfd是由socket函数返回的套接字描述符;第二个参数addr是指向服务器的套接字地址
文档评论(0)