- 1、本文档共76页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机网络(编程部分)讲述
张建忠
zhangjz@nankai.edu.cn
网络应用程序与Socket编程
传输层的主要工作
追求的目标:可靠性
单机用户:应用程序依赖于底层系统的可靠性,系统保证数据传送到底层后不会丢失和重复
网络用户:希望互联网能够提供迅速、准确、可靠的通信功能,保证不发生丢失、重复、错序等可靠性问题
传输层:保证端对端数据传输的可靠性
传输控制协议TCP
用户数据报协议UDP
点对点通信与端对端通信
互联层:点对点通信
传输层:端对端通信
端对端通信与虚拟通信平台
TCP提供的服务
TCP提供的服务:面向连接、可靠、全双工数据流
TCP提供的服务特征
面向连接(Connection Orientation)
完全可靠性(Complete Reliability)
全双工通信(Full Duplex Communication)
流接口(Stream Interface)
连接的可靠建立与优雅关闭(Reliable Connection Startup Graceful Connection Shutdown)
TCP通信过程
建立连接(可靠地建立)
发送数据(可靠、全双工、流式数据)
关闭连接(优雅地关闭)
TCP的可靠性实现
必要性:TCP建立在IP协议提供的面向非连接、不可靠的数据报投递服务基础之上
TCP需要解决的可靠性问题
丢失数据的恢复问题(重传)
流量控制问题(窗口)
可靠建立与关闭连接问题(三次握手)
TCP端口与连接
TCP端口:一个TCP连接两端的端点
TCP端口的表示:16位的二进制数
利用TCP端口可以提供多路复用功能
著名的TCP端口号
用户数据报协议UDP
UDP提供的服务:面向非连接、不可靠
服务特点
面向非连接,数据直接封装在IP数据报中投递
不确认,不排序
运行效率高,实现简单
利用UDP的应用程序要承担可靠性方面的全部工作
UDP的端口
UDP利用端口对给定主机上的多个目标进行区分
UDP端口使用16位二进制数表示
TCP和UDP各自拥有自己的端口号
网络编程界面
TCP/IP协议通常在操作系统的内核中实现
编程界面:由操作系统提供的功能调用,可以使应用程序方便地使用内核的功能
socket(套接字):TCP/IP网络操作系统为网络程序开发提供的典型网络编程界面
Socket的位置
套接字
由加利福尼亚大学伯克利分校(University of California,Berkeley)首创
把网络连接看成一个流(Stream),可以向流写字节,也可以从流读取字节
为程序员屏蔽了网络的底层细节(媒体类型、信息包的大小、网络地址、信息重发等)
Socket通过绑定机制与驱动程序建立关系(通知自己所对应的IP和Port)
发送数据:由Socket交给驱动程序向网络发送
接收数据:驱动程序收到与Socket绑定的数据后,由驱动程序交给Socket,应用进程从Sokcet中读取
Socket常用的操作
连接远程机器
绑定端口
接收远程连接请求
监听到达的数据
发送数据
接收数据
关闭连接
TCP和UDP工作过程
socket套接字
数据报套接字(datagram sockets):使用UDP协议,支持主机之间面向非连接、不可靠的信息传输
流式套接字(stream sockets):使用TCP协议,支持主机之间面向连接的、顺序的、可靠的、全双工字节流传输
Windows、UNIX、Linux都支持socket
Java提供的socket
Microsoft提供的socket
Windows Sockets API、CAsyncSocket类、WinSock控件
CAsyncSocket编程--创建socket
构造CAsyncSocket对象
利用Create创建和初始化socket
(1) //在堆栈上构造CAsyncSocket对象
CAsyncSocket sock;
(2) //在堆上构造CAsyncSocket对象
CAsyncSocket* pSocket = new CAsyncSocket;
BOOL Create(
UINT nSocketPort = 0,
int nSocketType = SOCK_STREAM,
long lEvent = FD_READ|FD_WRITE|FD_OOB|FD_ACCEPT|
FD_CONNECT|FD_CLOSE,
LP
您可能关注的文档
最近下载
- 2023年11月深圳市福田区公开选用机关事业单位辅助人员和社区专职工作者笔试历年(2016-2023年)真题荟萃带答案解析.pdf VIP
- 2024秋(人教版)英语七年级上册:单词表 汇总表.pdf
- 2022年通信工程师中级传输与接入(无线)真题及答案.pdf
- 第二章一元二次函数、方程和不等式教学设计(全章).docx
- 国家开放大学《电子商务概论》1-9章 形考任务阶段测验1、2答案(无错版本)82295 .pdf VIP
- 江苏省普通高校“专转本”选拔考试管理专业大类专业综合操作技能考试大纲.docx
- 银行开展减费让利宣传活动的总结范文(30篇).docx VIP
- 美育——美即生活-期末复习-题库-试卷.docx
- 预定动作时间标准法(PTS).doc VIP
- 中国饮食文化(教案) (中职教育).docx
文档评论(0)