功能创建套接字。.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
功能创建套接字。

内容概述 1. 套接字介绍 2. 客户/服务器模式 3. 使用套接字 4. Win Sock简介 5. 程序实例 内容概述 推荐参考书籍 《UNIX网络编程》richard stevens 《UNIX环境高级编程》 《TCP/IP网络互联技术卷III(winsock版)》《WINDOWS网络编程》微软 1. 套接字介绍 网络应用程序编程接口(API) 计算机用它来对网络发送或接收信息。 套接字接口(socket interface) 由加州大学伯克利分校UNIX小组开发,目前最为流行。 常用的套接字接口 Linux/Unix下: Berkeley Socket是最突出的一套接口。 Windows下: Win Socket (winsock), 类似Berkeley Socket 1. 套接字介绍 1. 套接字介绍 一个IP与一个端口(port)联合形成一个套接字。 在网络的另外一端可有一个对应的套接字与通信。 2. 客户/服务器模式 TCP/IP网络应用中最常用的通信模式。 客户端发出服务请求 服务器端接收请求并提供相应的服务。 2. 客户/服务器模式 客户端与服务器的连接方式主要有两种: 流式套接口连接 可靠的双向通讯的数据流。包会按发送时的顺序到达。 数据报套接口连接 包不一定会按发送时的顺序到达。仅保证每个包的内部是无错误的。 2. 客户/服务器模式 服务器操作: 1. 打开一个通信通道,在某个端口上接收客户请求; 2. 等待客户请求; 3. 收到客户端请求,处理并应答。直至交互完成。 4. 返回第二步,等待另一客户请求。 5. 关闭服务器 2. 客户/服务器模式 客户端操作: 1. 打开一个通信通道,连接到服务器所在主机的特定端口 (此时,服务器端已经在这个Socket等待请求) 2. 向服务器发服务请求报文,等待并接收应答; 继续提出请求并等待应答...... 3. 请求结束后关闭通信通道并终止。 2. 客户/服务器模式 客户端与服务器端的区别: 1. 客户与服务器进程的作用是非对称的,它们各自完成的功能不同,因此具体代码也不同。 2. 服务进程一般是先于客户请求而启动的,启动后即在相应的Socket监听来自客户端的请求。 2. 客户/服务器模式 服务器方面初始时需要执行的操作: int socket () 建立一个Socket int bind() 与某个端口绑定 int listen() 开始监听端口 int accept() 等待/接受客户端的连接请 客户端需要执行的操作: int socket () 建立一个Socket int connect() 连接到服务器 3. 使用套接字 以下介绍Berkeley Socket的用法。 当Win socket与它有差异时,将用蓝色字体加以说明。 (1) int socket (int domain, int type, int protocol) 功能:创建套接字。 返回值:返回值是新创建套接字的句柄,即以后引用该套接字时使用的标识符。错误时返回-1。 3. 使用套接字 参数 domain 描述将使用的协议族。 AF_INET : 用于表示因特网协议族。 AF_UNIX : 用于表示U n i x 管道功能 参数 type表明通信的语义。 SOCK_STREAM: 字节流服务,可理解为TCP连接 SOCK_DGRAM: 面向消息的服务,可理解为UDP连接 参数 protocol 则指明将要用到的特定协议 IPPROTO_TCP: 指的是使用TCP协议 3. 使用套接字 (2) int bind(int socket, struct socketaddr *address, int addr_len) 功能:将创建的 socket 与 adress (包含 IP和port信息)绑定。 返回值:在错误的时候会返回-1 参数 socket 描述将使用的套接字。 参数 addr_len 描述的是参数 adress的长度。 参数 adress 描述将绑定的地址。 3. 使用套接字 参数中用到的数据结构: struct socketaddr:在因特网协议中地址描述使用的数据结构 struct sockaddr { unsigned short sa_family; char sa_data[14]; }; sa_family 描述将使用的协议族,一般为AF_INET sa_data 为套接口储存目标地址和端口信息。 3. 使用套接字 注意: 存在高位字节在前和低们字节在前的排列顺序,前者叫“网络字节顺序 (Network Byte

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档