Socket编程基础.ppt

上传人:油条 文档编号:26828376 上传时间:2018-01-02 格式:PPT 页数:29 大小:1.65MB
返回 下载 相关 举报
Socket编程基础.ppt_第1页
第1页 / 共29页
Socket编程基础.ppt_第2页
第2页 / 共29页
Socket编程基础.ppt_第3页
第3页 / 共29页
Socket编程基础.ppt_第4页
第4页 / 共29页
Socket编程基础.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《Socket编程基础.ppt》由会员分享,可在线阅读,更多相关《Socket编程基础.ppt(29页珍藏版)》请在金锄头文库上搜索。

1、网络高级编程,计算机科学学院 梁晓Email: Tel: 13540013002,Network Advanced Programming,学分、课时、成绩组成,本课程3学分(包含上机项目)理论课时32,上机课时32考核方式介绍及各项所占比重上机项目(Demo&Code Review):40%功能实现代码规范化、文档化期末考试(上机)平时作业检查(随机抽查&主动汇报):10%期末考试(笔试): 50%三次考勤缺席,取消考试资格!,Network Advanced Programming,知识准备,计算机网络基础OSI模型,TCP/IP协议相关知识C语言与数据结构相关的知识指针,链表,队列,栈

2、等Windows环境编程基础*Visual Studio开发环境的基本使用程序调试技术,Network Advanced Programming,教材及参考书籍,教材Windows网络编程,第二版,罗莉琴 詹祖桥 编著,人民邮电出版社 参考书籍用TCP/IP进行网际互联(第三卷)客户-服务器编程与应用,Douglas E.Comer,电子工业出版社,2008Windows网络编程技术(第二版),清华大学出版社,2005 UNIX网络编程:第3版(美)史蒂文斯,(美)芬纳,(美)鲁道夫 著,杨继张 译,清华大学出版社,2006-1-1Windows核心编程Jeffrey Richter / Ch

3、ristophe Nasarre, 译者: 葛子昂 / 周靖 / 廖敏 ,清华大学出版社,Network Advanced Programming,课程主要内容,网络编程基础Socket编程基础并行处理、多线程编程高级Socket编程技术探测网络中的在线设备NetBIOS网络编程,Network Advanced Programming,学习方法,理解比什么都重要!,实践、实践、再实践!,动脑筋,写代码,Network Advanced Programming,概述,Network Advanced Programming,概述,CPU(Central Process Unit),GPU(Gr

4、aphics Process Unit),PPU(Physics Process Unit),XPU,Network Advanced Programming,概述,提供资源访问虚拟化操作(文件、硬件、网络等),一切基于Web应用,Chrome OS,Chromebook,Network Advanced Programming,概述,操作系统,CPU,Network Advanced Programming,互联网,国内互联网公司互联网人 机 物机器:互联网设备+端系统社交网络物联网RFID(射频识别技术)用于门禁,图书馆、食品安全追溯NFC(近距离通信)用于手机刷卡等WSN(无线传感器网络

5、)应用领域可以归纳为:军事、救灾、航空、反恐、防爆、环境、医疗、保健、家居、工业、商业等,Network Advanced Programming,概述,第一章 网络编程基础,计算机科学学院 梁晓Email: Tel: 13540013002,Network Advanced Programming,网络程序在网络体系结构中的位置,从功能上,网络程序分为两部分:通信模块分布式应用基础用户交互或后台处理模块,Network Advanced Programming,实现网间进程通信必须解决的问题,进程间的标识如何与网络协议栈连接应用程序需要一个简单的方式与协议栈连接多重协议栈的识别多重协议栈:

6、TCP/IP, IPX/SPX(NetWare OS), Apple Talk等不同的通信服务不同的网络应用有不同的通信服务要求,Network Advanced Programming,网间进程的标识,IP地址-在网络中标识主机IP地址(网络号+主机号)传输层端口-标识进程端口是TCP/IP协议族中,应用层进程与传输层协议实体间的通信接口;从实现的角度讲,端口是一种抽象的软件机制,包括一些数据结构和I/O缓冲区;应用程序需要与端口建立绑定关系;每个端口都拥有一个叫作端口号(port number)的整数型标识符;,Network Advanced Programming,客户与服务器第一次通

7、信,Network Advanced Programming,使用端口号来判断服务,Web server(port 80),客户端 202.5.7.8,服务端 128.2.194.242,FTP server(port 21),Service request for128.2.194.242:80(i.e., the Web server),Web server(port 80),FTP server(port 21),Service request for128.2.194.242:21(i.e., the FTP server),TCP/IP协议栈,TCP/IP协议栈,Client,Cli

8、ent,Network Advanced Programming,标识网间进程,TCP和UDP端口号分配端口0:不使用,或者作为特殊的使用;端口1-254:保留给特定的服务,TCP和UDP均规定,小于256的端口号才能分配给网上著名的服务;端口255-1023:保留给其他的服务,如路由;端口1024-4999:可以用作任意客户的端口;端口5000-65535:可以用作用户的服务器端口,Network Advanced Programming,网络协议的特征,面向消息的协议 vs. 基于流的协议面向连接的服务 vs. 无连接的服务面向连接服务是电话系统服务模式的抽象,即每一次完整的数据传输都要经

9、过建立连接,使用连接,终止连接的过程。无连接服务是邮政系统服务的抽象,每个分组都携带完整的目的地址,各分组在系统中独立传送可靠性 vs. 次序性,Network Advanced Programming,三类网络编程,基于TCP/IP协议栈的网络编程基于TCP/IP协议栈的网络编程是最经典的网络编程方式,主要是使用各种编程语言,利用操作系统提供的套接字网络编程接口,直接开发各种网络应用程序。本书主要讲解这种网络编程的相关技术。基于WWW应用的网络编程JAVA,HTML,ASP,PHP基于.NET框架的Web Services网络编程,Network Advanced Programming,C

10、/S模式,Client asks (request) server provides (response)Typically: single server - multiple clients The server does not need to know anything about the clienteven that it existsThe client should always know something about the serverat least where it is located,Clientprocess,Serverprocess,1. Client sen

11、ds request,2. Server handlesrequest,3. Server sends response,4. Client handlesresponse,Resource,Network Advanced Programming,C/S模式,C/S模式,因特网上应用程序最常用的通信模式。客户方采取的是主动请求方式,其工作过程是:(1) 打开一通信通道,并连接到服务器所在主机的特定监听端口。(2)向服务器发送请求报文,等待并接收应答;继续提出请求,与服务器的会话按照应用协议进行。(3)请求结束后,关闭通信通道并终止。,Network Advanced Programming,

12、C/S交互模式,服务器的工作过程:(1) 打开一通信通道,并告知服务器所在的主机,它愿意在某一公认的地址上(熟知端口,如FTP为21)接收客户请求。(2) 等待客户的请求到达该端口。 (3) 服务器接收到服务请求,处理该请求并发送应答信号。(4) 返回第二步,等待并处理另一客户请求。(5) 在特定的情况下,关闭服务器。,Network Advanced Programming,服务器的工作方式,若有多个客户端同时请求,服务器如何处理?,循环方式(iterative mode)在计算机中一次只运行一个服务器进程。当有多个客户进程请求服务时,服务器进程就按请求的先后顺序依次做出响应。,并发方式(c

13、oncurrent mode)在计算机中同时运行多个服务器进程,而每一个服务器进程都对某个特定的客户进程做出响应。,Network Advanced Programming,服务端的并发性,并发性是C/S模式的基础,并发允许多个客户获得同一种服务,而不必等待服务器完成对上一个请求的处理。这样才能很好地同时为多个客户提供服务。操作系统支持并发性程序开发Unix系统: fork(),创建新进程Windows系统: CreateThread(),创建新线程,Network Advanced Programming,服务器的设计方式,服务器设计方式由采用的传输层协议和工作方式决定;(TCP/UDP)+

14、(循环/并发)四种设计方式:面向连接的并发面向连接的循环无连接的并发无连接的循环,Network Advanced Programming,TCP,TCP,客户,临时端口,临时端口,TCP,客户,临时端口,TCP,客户,临时端口,主服务器,TCP 连接,熟知端口仅用于接受服务请求,创建,从属服务器,面向连接的并发服务器,主服务器主要流程在周知端口上设置监听模式While(true)若在周知端口上有客户端的TCP连接请求;进行三次握手建立TCP连接;创建从属服务器(用临时端口与客户端进行通信);,Network Advanced Programming,无连接循环服务器,UDP,服务器,UDP,客户,临时端口,熟知端口,UDP,客户,临时端口,UDP,客户,临时端口,一次一个客户,服务器只使用一个熟知端口。每一个客户则使用自己创建的临时端口(端口号自己设定)。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号