清华计算机系程设小学期_Socket网络编程.docx

清华计算机系程设小学期_Socket网络编程.docx

  1. 1、本文档共161页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 四 讲 网络通信的基本编程 清华大学计算机系 □ 背景与基本概念 口 Windows Socket 简介 □ Windows 下网络编程基础 □ WinSock API介绍 □有代表性的网络应用协议 2 网络核心 应用 Web 应用 网络边缘电子邮件 网络边缘 文件服务 3 C/S(Client/Server) 结构,即客户机和服务器结构 将任务(存储、操作或计算的任务)分配到客户端或服务器中 客户端和服务器通过网络通信来协作 B/S(Browser/Server) 结构,即浏览器和服务器结构。 客户端使用标准的浏览器,不需要专门开发、部署客户端 ■ 即时通信系统 ( IMS) 是最常见的网络应用软件 ■ 如QQ、MSN、icq、飞信等 开发IMS, 需要实现最简单的发送和“接收”功能。 ■ 方便初学者掌握TCP/IP 网络程序设计 开 发IMS, 读者可以学会C/S模式的网络通信软件的开 发。 ■ 包括服务器端程序设计和客户端程序设计。 5 ■ 启动服务器,处于监听状态 服务器建立之后,等待客户机的连接申请。 启动客户端,尝试对服务器进行连接操作 ■ 一个连接建立之后,其他客户机还可以再连接到上面 ■ 这样可以进行多用户的信息交互。 ■ 成功建立连接之后,开始进行对话操作 实现只有消息的接收方可以看到,保护隐私。 ■ 聊天结束之后,客户机断开连接,退出聊天的过程。 ■ 如果是服务器关闭,连接在上面的所有客户机将会断开。 TCP/IP 模型中的两个分界线 应用 Web Web 应用电子邮件文件服务. 操作系统分界线 套接字 (Socket) TC TC UDP 操作系统内核 TCP/IP 协议栈 网络层 协议地址分界线 链路层网络接口网络接口 链路层 网络接口 硬件 应用程序 FILE *fp fscanf(fp, fclose(fp); = .); fopen(a.txt,r); 应用程序 文件句柄 文件 应用程序 Socket 网络接口 8 什么是Socket 文 件I/0操作-句柄(Handle) 网 络I/O操作-套接字 (Socket) Socket 提供了一个通信端口,应用程序在网络上发送、 接收的信息都通过这个接口来实现。 Socket 和句柄一样,是操作系统的资源 IP 地址: Internet 中的主机要与别的机器通信必须具有一个IP地址, IP地 址是Internet 中主机的标识。 表示形式:常用点分形式,如1 8, 最后都会转换为一 个32位的整数。 ■ IP地址转换函数 inet addr(): 点分十进制数表示的IP地址转换为网络字节序的IP 地址 inet ntoa(): 网络字节序的IP 地址转换为点分十进制数表示的IP 地址 10 ■ 端口号 为了区分一 台主机接收到的数据包应该递交给哪个进程来进行处理 ,使用端口号 TCP 端口号与UDP 端口号独立 端口号一般 由IANA (Internet Assigned Numbers Authority) 管理 众所周知端口: 1~1023,1~255之间为大部分众所周知端口, 256~1023端口通常由UNIX 占用 注册端口: 1024~49151 动态或私有端口: 49152~65535 11 使 用 socket 实现网络通信 配置一个 socket 需要五种信息: ■ 本地的IP地址、本地的协议端口 远程的 IP地址、远程的协议端口 ■ 连接所使用的协议 ■ 打个比方: ■ 如果把IP数据包的投递过程看成是给远方的一位朋友 寄一封信,那么: IP 地址就是这位朋友的所在位置,如北京清华大学计 算系 (依靠此信息进行路由) 端口号就是这位朋友的名字(依靠这个信息最终把这 封信交付给这位收信者) 12 ■ 字节序 大尾端 (Big-Endian): 字节的高位在内存中放在存储单 元的起始位置 小 尾 端(Little-Endian): 与大尾端相反 0000111 13 网络字节序: Network Byte Order 使用统 一 的字节顺序,避免兼容性问题 主机字节序: Host Byte Order 不 同 机 器 的HBO 与CPU 的设计有关,可能不一样 Motorola 68K系列, HBO 与NBO 是一致的 Intel X86系列, HBO 与NBO 不一致 ■ 字节排序函数 htonl 4 字节主机字节序转换为网络字节序 ntohl 4 字节网络字节序转换为主机字节序 htons 2 字节主机字节序转换为网络字

文档评论(0)

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

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

1亿VIP精品文档

相关文档