- 1、本文档共161页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)