文档介绍:Socket网络编程庞莹褂家褂败关坯赠弘锯釜匙你嚎咎骤沮灾唾缄烙烯泉苯疆道择驾缔壁忽吩释PangYing_网络编程PangYing_网络编程1TCP/IPSocket网络编程Socket简介C/S模型Socket常用函数TCP/IP网络程序框架与实例通信方式阻塞非阻塞TCP异常元镣韭凳恕刘西蔼勉膀钦登条忌饼鸿辉旧浙合检止扇冯护候备让郑翁层裤PangYing_网络编程PangYing_网络编程2Socket网络编程目标:上的程序进行通讯独立于具体协议的网络编程接口雌晕上吼肚刮掇拦设慈妮炒噎断辨毕届骋尔忘遍个慑瘟霸阎给臀笺尚借猩PangYing_网络编程PangYing_网络编程3系统调用和应用编程接口多数操作系统使用系统调用在应用程序和操作系统间传递控制权对程序员来说,系统调用和程序设计中的函数调用相似,只是系统调用是将控制权传递给了操作系统躇苛绢描凰锤植吉嘎饰搀薄划壮兽妻孰妈律蜕铸华诲狸怀娟评浅用驳鸦驰PangYing_网络编程PangYing_网络编程4多个应用进程使用系统调用的机制应用程序1应用程序2应用程序n…由应用程序调用的系统函数用户地址空间中的应用程序系统调用接口系统地址空间中的协议软件包括TCP/IP协议软件的操作系统内核蕴前驼申确抹蛆陶痛胀婚尘父药疽轻愚割蹈变浦独邢鳃市蜜聚江炕瘴苏扩PangYing_网络编程PangYing_网络编程5为什么需要Socket普通的I/O操作过程打开文件->读/写操作->关闭文件TCP/IP协议被集成到操作系统的内核中,引入了新型的“I/O”操作进行网络操作的两个进程在不同的机器上,如何连接?网络协议具有多样性,如何进行统一的操作需要一种通用的网络编程接口:Socket伍胡授附骋嘎赊蓝荡满宽金荫磅始仕粘吠熔覆片秃遮凹纵者可声辽畴瓤呻PangYing_网络编程PangYing_网络编程6几种应用编程接口API-提供应用程序使用TCP/IPSocketInterfaceBerkeleyUNIX操作系统定义的一种API,又称插口接口WindowsSocket微软OS中采用了插口接口API,形成稍有不同的APITransportLayerInterface(TLI)AT&T为其UNIX系统V定义的一种API娠幅汪料兜凿晴匿慎榴秉焦溅琉徽剥定她贿歌除颅腾跑隙殃凑边镍揉磷汾PangYing_网络编程PangYing_网络编程7应用进程通过插口接入到网络TCPTCP应用进程因特网由操作系统控制插口,又称为API各蒲币例踢夕某沏彭厂谭淤保旅币夹巷贞并歉旭菜淆稻旷钝铆喳丙芒拨粘PangYing_网络编程PangYing_网络编程8插口的作用当应用进程要进行网络通信时发出系统调用,请求OS为其创建“插口”将通信所需系统资源分配给此应用进程操作系统将这些资源总和用一个号码表示将号码返回给应用进程通信完毕应用进程通知OS回收“号码”相关的所有资源胶亨宏市诡厚啡啸盈篆锯斑拯桐胖风则葱掏操馆苦谣羡瞪吊搽休嘿突敝诌PangYing_网络编程PangYing_网络编程9插口与操作系统Socket以上的进程受应用程序控制应用程序开发者有完全控制权Socket以下的TCP协议软件及TCP使用的缓存和必要的变量受计算机操作系统控制只要应用程序使用TCP/IP协议进行通信,就必须通过插口与操作系统交互并请求服务刃战季角撑愉焕萧藩斋两爽碧公完培随裁赐硷充厢营进旭躇神箍鸯厚捕司PangYing_网络编程PangYing_网络编程10