- 1、本文档共61页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
pangying网络编程
Socket 网络编程 庞莹 TCP/IP Socket网络编程 Socket简介 C/S模型 Socket常用函数 TCP/IP网络程序框架与实例 通信方式 阻塞 非阻塞 TCP 异常 Socket网络编程 目标 : 应用进程跨越网络的通信 与Internet 上的程序进行通讯 独立于具体协议的网络编程接口 系统调用和应用编程接口 多数操作系统使用系统调用在应用程序和操作系统间传递控制权 对程序员来说,系统调用和程序设计中的函数调用相似,只是系统调用是将控制权传递给了操作系统 多个应用进程使用系统调用的机制 为什么需要Socket 普通的I/O操作过程 打开文件->读/写操作->关闭文件 TCP/IP协议被集成到操作系统的内核中,引入了新型的“I/O”操作 进行网络操作的两个进程在不同的机器上,如何连接? 网络协议具有多样性,如何进行统一的操作 需要一种通用的网络编程接口:Socket 几种应用编程接口 API -提供应用程序使用TCP/IP Socket Interface Berkeley UNIX 操作系统定义的一种 API,又称插口接口 Windows Socket 微软OS中采用了插口接口 API,形成稍有不同的 API Transport Layer Interface (TLI) ATT 为其 UNIX 系统 V 定义的一种 API 应用进程通过插口接入到网络 插口的作用 当应用进程要进行网络通信时 发出系统调用,请求OS为其创建“插口” 将通信所需系统资源分配给此应用进程 操作系统 将这些资源总和用一个号码表示 将号码返回给应用进程 通信完毕 应用进程通知OS回收“号码”相关的所有资源 插口与操作系统 Socket以上的进程 受应用程序控制 应用程序开发者有完全控制权 Socket 以下的 TCP 协议软件及 TCP 使用的缓存和必要的变量 受计算机操作系统控制 只要应用程序使用 TCP/IP 协议进行通信,就必须通过插口与操作系统交互并请求服务 服务器的两种工作方式 服务器的两种工作方式 循环方式(iterative mode) 计算机中一次只运行一个服务器进程 当多个客户进程请求服务时,服务器进程按先后顺序依次响应 并发方式(concurrent) 计算机中同时运行多个服务器进程,每个进程都对某特定客户进程做出响应 无连接循环服务器 使用UDP 的服务器进程的常用方式 一个进程同一时间只向一客户进程服务 服务器进程收到一客户请求后,发送 UDP 响应 对其他客户进程的请求都在服务器队列中排队 当处理完一个请求时,从队列中读下一客户进程的请求,继续处理 无连接循环服务器的特点 面向连接并发服务器的特点(1/3) 服务器进程同一时间为多个客户服务 面向连接并发服务器的特点(2/3) S与C建立多条 TCP 连接,每条在数据传完后释放 面向连接并发服务器的特点(3/3) 使用 TCP 的服务器只能有一个熟知端口 并发处理过程 C/S model Client-server model is basis for distributed applications Server is specialized, complex program (process) that offers a service Arbitrary application can become a client by contacting a server and sending a request Most servers are concurrent Socket类型 流式套接字(SOCK_STREAM) 提供面向连接、可靠数据传输服务,无差错、无重复发送且按发送顺序接收 内置流量控制,避免数据流淹没慢接收方。数据被看作是字节流,无长度限制 数据报套接字(SOCK_DGRAM) 提供无连接服务。包独立地发送,可能出错、丢失/重复,无序接收。 原始套接字(SOCK_RAW) 可对较低层次协议,如IP、ICMP直接访问 Socket的位置 两类系统中使用的Socket 不同操作系统中的Socket Windows Socket (Winsock) Linux Socket (BSD Socket) Windows Socket 简称Winsock Windows环境下的一套网络编程规范,基于4.3BSD的BSD Socket API制定 1991年Winsock 1.1,16位,由WINSOCK.DLL支持,主要用在Windows 95中 1997年Winsock 2.2 版,32位,由WSOCK32.DLL支持,用在Windows 98及以后的版本中 已成为Windows环境网络编程的事实标准 Windows
文档评论(0)