6socket编程(ppt).pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《6socket编程(ppt).pdf》由会员分享,可在线阅读,更多相关《6socket编程(ppt).pdf(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、SocketSocketSocketSocket网络编程网络编程网络编程网络编程主讲人主讲人主讲人主讲人:李奎李奎李奎李奎socketsocketsocketsocket网络编程基础网络编程基础网络编程基础网络编程基础 socketsocketsocketsocket概述概述概述概述linuxlinuxlinuxlinux中的网络编程通过中的网络编程通过中的网络编程通过中的网络编程通过socketsocketsocketsocket接口实现接口实现接口实现接口实现。SocketSocketSocketSocket既是一种特殊的既是一种特殊的既是一种特殊的既是一种特殊的IOIOIOIO,它也是一
2、种文件描述符它也是一种文件描述符它也是一种文件描述符它也是一种文件描述符。一个完整一个完整一个完整一个完整的的的的Socket Socket Socket Socket 都有一个相关描述都有一个相关描述都有一个相关描述都有一个相关描述 协议协议协议协议,本地地址本地地址本地地址本地地址,本地端本地端本地端本地端口口口口,远程地址远程地址远程地址远程地址,远程端口远程端口远程端口远程端口 ;每一个每一个每一个每一个Socket Socket Socket Socket 有一个本地有一个本地有一个本地有一个本地的唯一的唯一的唯一的唯一Socket Socket Socket Socket 号号号号
3、,由操作系统分配由操作系统分配由操作系统分配由操作系统分配。套接字有三种类型套接字有三种类型套接字有三种类型套接字有三种类型:流式套接字流式套接字流式套接字流式套接字(SOCK_STREAMSOCK_STREAMSOCK_STREAMSOCK_STREAM)流式的套接字可以提供可靠的流式的套接字可以提供可靠的流式的套接字可以提供可靠的流式的套接字可以提供可靠的、面向连接的通讯流面向连接的通讯流面向连接的通讯流面向连接的通讯流。它它它它使用使用使用使用了了了了TCPTCPTCPTCP协议协议协议协议。TCP TCP TCP TCP 保证了数据传输的正确性和顺保证了数据传输的正确性和顺保证了数据传
4、输的正确性和顺保证了数据传输的正确性和顺序性序性序性序性。数据报套接字数据报套接字数据报套接字数据报套接字(SOCK_DGRAMSOCK_DGRAMSOCK_DGRAMSOCK_DGRAM)数据报套接字定义了一种无连接的服务数据报套接字定义了一种无连接的服务数据报套接字定义了一种无连接的服务数据报套接字定义了一种无连接的服务,数据通过相数据通过相数据通过相数据通过相互独立的报文进行传输互独立的报文进行传输互独立的报文进行传输互独立的报文进行传输,是无序的是无序的是无序的是无序的,并且不保证可靠并且不保证可靠并且不保证可靠并且不保证可靠,无差错无差错无差错无差错。使用数据报协议使用数据报协议使用
5、数据报协议使用数据报协议UDPUDPUDPUDP协议协议协议协议。原始套接字原始套接字原始套接字原始套接字原始套接字允许对低层协议如原始套接字允许对低层协议如原始套接字允许对低层协议如原始套接字允许对低层协议如IPIPIPIP或或或或ICMPICMPICMPICMP直接访问直接访问直接访问直接访问,主主主主要用于新的网络协议实现的测试等要用于新的网络协议实现的测试等要用于新的网络协议实现的测试等要用于新的网络协议实现的测试等。基于数据流的基于数据流的基于数据流的基于数据流的socketsocketsocketsocket编程流程编程流程编程流程编程流程数据报的编程流程数据报的编程流程数据报的编
6、程流程数据报的编程流程套接字套接字套接字套接字地址结构地址结构地址结构地址结构structstructstructstruct sockaddrsockaddrsockaddrsockaddr unsigned short unsigned short unsigned short unsigned short sa_familysa_familysa_familysa_family;/*address/*address/*address/*address族族族族,AF_xxxAF_xxxAF_xxxAF_xxx*/*/*/*/char sa_data14;char sa_data14;cha
7、r sa_data14;char sa_data14;/*14 bytes/*14 bytes/*14 bytes/*14 bytes的协议地址的协议地址的协议地址的协议地址*/;sa_familysa_familysa_familysa_family 一般来说一般来说一般来说一般来说,IPV4IPV4IPV4IPV4使用使用使用使用“AF_INETAF_INETAF_INETAF_INET”。sa_datasa_datasa_datasa_data 包含了一些远程电脑的地址包含了一些远程电脑的地址包含了一些远程电脑的地址包含了一些远程电脑的地址、端口和套接字端口和套接字端口和套接字端口和套接
8、字的数目的数目的数目的数目,它里面的数据是杂溶在一起的它里面的数据是杂溶在一起的它里面的数据是杂溶在一起的它里面的数据是杂溶在一起的。结构体数组结构体数组结构体数组结构体数组structstructstructstruct sockaddr_insockaddr_insockaddr_insockaddr_in:为了处理为了处理为了处理为了处理struct sockaddrstruct sockaddrstruct sockaddrstruct sockaddr,程序员建立了另外一个程序员建立了另外一个程序员建立了另外一个程序员建立了另外一个相似的结构体数组相似的结构体数组相似的结构体数组相似
9、的结构体数组struct sockaddr_instruct sockaddr_instruct sockaddr_instruct sockaddr_in:struct sockaddr_in struct sockaddr_in struct sockaddr_in struct sockaddr_in short int sin_family;short int sin_family;short int sin_family;short int sin_family;/*Internet/*Internet/*Internet/*Internet地址族地址族地址族地址族*/unsigne
10、d short int sin_port;unsigned short int sin_port;unsigned short int sin_port;unsigned short int sin_port;/*/*/*/*端口号端口号端口号端口号*/struct in_addr sin_addr;struct in_addr sin_addr;struct in_addr sin_addr;struct in_addr sin_addr;/*Internet/*Internet/*Internet/*Internet地址地址地址地址*/unsigned char sin_zero8;uns
11、igned char sin_zero8;unsigned char sin_zero8;unsigned char sin_zero8;/*/*/*/*添添添添0 0 0 0(和和和和struct struct struct struct sockaddrsockaddrsockaddrsockaddr一样大小一样大小一样大小一样大小)*/;1.1.1.1.structstructstructstruct in_addrin_addrin_addrin_addr 2.2.2.2.unsigned long unsigned long unsigned long unsigned long s
12、_addrs_addrs_addrs_addr;3.3.3.3.;声明一个声明一个声明一个声明一个“baozongbaozongbaozongbaozong”作为一个作为一个作为一个作为一个structstructstructstructsockaddr_insockaddr_insockaddr_insockaddr_in 的结构的结构的结构的结构,那么那么那么那么“baozong.sin_addr.s_addrbaozong.sin_addr.s_addrbaozong.sin_addr.s_addrbaozong.sin_addr.s_addr”就是就是就是就是4 4 4 4 个字节的个
13、字节的个字节的个字节的IP IP IP IP 地地地地址址址址socketsocketsocketsocket系统调用系统调用系统调用系统调用socket socket socket socket 系统调用系统调用系统调用系统调用1.1.1.1.用法用法用法用法retcoderetcoderetcoderetcode=socket(family,type,protocol);=socket(family,type,protocol);=socket(family,type,protocol);=socket(family,type,protocol);2.2.2.2.说明说明说明说明socke
14、tsocketsocketsocket 函数创建一个用于网络通信的套接字函数创建一个用于网络通信的套接字函数创建一个用于网络通信的套接字函数创建一个用于网络通信的套接字,并返回该套接并返回该套接并返回该套接并返回该套接字的整数描述符字的整数描述符字的整数描述符字的整数描述符。3.3.3.3.参数参数参数参数family family family family 类型为类型为类型为类型为intintintint,含义是协议或地址族含义是协议或地址族含义是协议或地址族含义是协议或地址族(对于对于对于对于TCP/IP TCP/IP TCP/IP TCP/IP 为为为为PF_INET PF_INET
15、PF_INET PF_INET,也可使用也可使用也可使用也可使用AF_INET)AF_INET)AF_INET)AF_INET)type type type type 类型为类型为类型为类型为intintintint,含义是服务的类型含义是服务的类型含义是服务的类型含义是服务的类型(对于对于对于对于TCP TCP TCP TCP 为为为为SOCK_STREAMSOCK_STREAMSOCK_STREAMSOCK_STREAM,对于对于对于对于UDPUDPUDPUDP为为为为SOCK_DGRAMSOCK_DGRAMSOCK_DGRAMSOCK_DGRAM)protocol protocol pr
16、otocol protocol 类型为类型为类型为类型为intintintint,含义是使用的协议号含义是使用的协议号含义是使用的协议号含义是使用的协议号,或是用或是用或是用或是用0 0 0 0 指定指定指定指定family family family family 和和和和type type type type 的默认协议号的默认协议号的默认协议号的默认协议号4.4.4.4.返回值返回值返回值返回值成功返回套接字描述符成功返回套接字描述符成功返回套接字描述符成功返回套接字描述符,错误返回错误返回错误返回错误返回-1 1 1 11.1.1.1.用法用法用法用法retcoderetcoderet
17、coderetcode=bind(socket,=bind(socket,=bind(socket,=bind(socket,localaddrlocaladdrlocaladdrlocaladdr,addrlenaddrlenaddrlenaddrlen););););2.2.2.2.说明说明说明说明bindbindbindbind 为一个套接字指明一个本地为一个套接字指明一个本地为一个套接字指明一个本地为一个套接字指明一个本地IP IP IP IP 和协议端口号和协议端口号和协议端口号和协议端口号。bind bind bind bind 主要由服务器使用主要由服务器使用主要由服务器使用主要
18、由服务器使用,它需要指定一个知名协议口它需要指定一个知名协议口它需要指定一个知名协议口它需要指定一个知名协议口bind bind bind bind 系统调用系统调用系统调用系统调用3.3.3.3.参数参数参数参数socket socket socket socket 类型为类型为类型为类型为intintintint,含义是由含义是由含义是由含义是由socket socket socket socket 调用创调用创调用创调用创建一个套接字描述符建一个套接字描述符建一个套接字描述符建一个套接字描述符localaddr localaddr localaddr localaddr 类型为类型为类型
19、为类型为&sockaddr&sockaddr&sockaddr&sockaddr,含义是一个地含义是一个地含义是一个地含义是一个地址结构址结构址结构址结构,指定一个指定一个指定一个指定一个IP IP IP IP 地址和协议端口号地址和协议端口号地址和协议端口号地址和协议端口号addrlen addrlen addrlen addrlen 类型为类型为类型为类型为intintintint,含义是地址结构的字节含义是地址结构的字节含义是地址结构的字节含义是地址结构的字节数大小数大小数大小数大小。4.4.4.4.返回码返回码返回码返回码bind bind bind bind 若成功则返回若成功则返回
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- socket 编程 ppt
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内