Linuxsocket网络编程基础.ppt
《Linuxsocket网络编程基础.ppt》由会员分享,可在线阅读,更多相关《Linuxsocket网络编程基础.ppt(39页珍藏版)》请在三一办公上搜索。
1、2023/7/7,人民邮电出版社出版杨宗德编著,1,Linux高级程序设计(第二版),人民邮电出版社出版杨宗德编著2009年9月,2023/7/7,人民邮电出版社出版杨宗德编著,2,第12章Linux socket网络编程基础,1,2,网络通信基础,BSD Socket TCP网络通信编程,3,BSD Socket UDP网络通信编程,4,使用TCP实现简单聊天程序,2023/7/7,人民邮电出版社出版杨宗德编著,3,OSI模型及TCP/IP协议模式,2023/7/7,人民邮电出版社出版杨宗德编著,4,TCP/IP体系结构及各层协议,2023/7/7,人民邮电出版社出版杨宗德编著,5,IP地址
2、分类,2023/7/7,人民邮电出版社出版杨宗德编著,6,IP地址划分,2023/7/7,人民邮电出版社出版杨宗德编著,7,网络数据包封包与拆包过程,2023/7/7,人民邮电出版社出版杨宗德编著,8,数据包接收拆包分类流程,2023/7/7,人民邮电出版社出版杨宗德编著,9,以太网链路层数据帧格式,2023/7/7,人民邮电出版社出版杨宗德编著,10,IP数据包头,2023/7/7,人民邮电出版社出版杨宗德编著,11,TCP包头,2023/7/7,人民邮电出版社出版杨宗德编著,12,UDP数据包头,2023/7/7,人民邮电出版社出版杨宗德编著,13,第12章Linux socket网络编程
3、基础,1,2,网络通信基础,BSD Socket TCP网络通信编程,3,BSD Socket UDP网络通信编程,4,使用TCP实现简单聊天程序,2023/7/7,人民邮电出版社出版杨宗德编著,14,类比电话通信,面向连接的socket通信实现,2023/7/7,人民邮电出版社出版杨宗德编著,15,通信过程,首先,服务器端需要做以下准备工作:(1)调用socket()函数。建立socket对象,指定通信协议。(2)调用bind()函数。将创建的socket对象与当前主机的某一个IP地和端口绑定。(3)调用listen()函数。使socket对象处于监听状态,并设置监听队列大小。客户端需要做以
4、下准备工作:(1)调用socket()函数。建立socket()对象,指定相同通信协议。(2)应用程序可以显式的调用bind()函数为其绑定IP地址和端口,当然,也可以将这工作交给TCP/IP协议栈。接着建立通信连接:(1)客户端调用connect()函数。向服务器端发出连接请求。(2)服务端监听到该请求,调用accept()函数接受请求,从而建立连接,并返回一个新的socket文件描述符专门处理该连接。然后通信双方发送/接收数据:(1)服务器端调用write()或send()函数发送数据,客户端调用read()或者recv()函数接收数据。反之客户端发送数据,服务器端接收数据。(2)通信完成
5、后,通信双方都需要调用close()或者shutdown()函数关闭socket对象。,2023/7/7,人民邮电出版社出版杨宗德编著,16,BSD Socket网络编程API socket,2023/7/7,人民邮电出版社出版杨宗德编著,17,Socket参数说明,第一个参数用来指明此socket对象所使用的地址簇或协议簇.,2023/7/7,人民邮电出版社出版杨宗德编著,18,Socket参数说明,第二个参数为socket的类型。,2023/7/7,人民邮电出版社出版杨宗德编著,19,BSD Socket网络编程API bind,完成此步,该socket拥有了本地IP地址,端口,通信协议,
6、不能接收客户端的请求,但可以向服务器发起连接。,2023/7/7,人民邮电出版社出版杨宗德编著,20,Bind参数说明,第二个参数是一个指向sockaddr结构的指针。struct sockaddr只是提供地址类型规范,根据不同的应用,sockaddr需要选用不同的类型。,2023/7/7,人民邮电出版社出版杨宗德编著,21,地址结构体定义-UNIX域套接字,2023/7/7,人民邮电出版社出版杨宗德编著,22,地址结构体定义-IPV4,2023/7/7,人民邮电出版社出版杨宗德编著,23,端口与IP地址,2023/7/7,人民邮电出版社出版杨宗德编著,24,BSD Socket网络编程API
7、 listen,第一个参数是绑定了IP及端口信息的socket文件描述符。第二个参数为请求排队的最大长度。当有多个客户端程序和服务器端相连时,此值表示可以使用的处于等待的队列长度。listen 函数将绑定的socket文件描述符变为监听套接字,完成此步:服务器已经准备接收客户端连接请求了。,2023/7/7,人民邮电出版社出版杨宗德编著,25,BSD Socket网络编程API客户端发起连接 connect,其第一个参数为socket返回的文件描述符。第二个参数储存了服务器端的地址(包括服务器的IP地址和端口信息)。第三个参数为该地址的长度。如果执行成功,此函数将与地址为addr的服务器建立连
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linuxsocket 网络 编程 基础
链接地址:https://www.31ppt.com/p-5437907.html