- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Socket的UDP与TCP编程介绍
基于Socket的UDP和TCP编程介绍一、概述TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议。TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,TCP套接口是字节流套接口(stream socket)的一种。UDP:用户数据报协议。UDP是一种无连接协议。UDP套接口是数据报套接口(datagram socket)的一种。二、TCP和UDP介绍1)基本TCP客户—服务器程序设计基本框架说明:(三路握手)1.客户端发送一个SYN段(同步序号)指明客户打算连接的服务器端口,以及初始化序号(ISN) 。2.服务器发回包含服务器的初始序号的SYN报文段作为应答。同时,将确认序号(ACK)设置为客户的ISN加1以对客户的SYN 报文段进行确认。一个SYN将占用一个序号。3.客户必须将确认序号设置为服务器的ISN加1以对服务器的SYN报文段进行确认。2) 基本TCP客户—服务器程序设计基本框架流程图3) UDP和TCP的对比:从上面的流程图比较我们可以很明显的看出UDP没有三次握手过程。简单点说。UDP处理的细节比TCP少。UDP不能保证消息被传送到(它也报告消息没有传送到)目的地。UDP也不保证数据包的传送顺序。UDP把数据发出去后只能希望它能够抵达目的地。TCP优缺点:优点:1.TCP提供以认可的方式显式地创建和终止连接。2.TCP保证可靠的、顺序的(数据包以发送的顺序接收)以及不会重复的数据传输。3.TCP处理流控制。4.允许数据优先5.如果数据没有传送到,则TCP套接口返回一个出错状态条件。6.TCP通过保持连续并将数据块分成更小的分片来处理大数据块。—无需程序员知道缺点: TCP在转移数据时必须创建(并保持)一个连接。这个连接给通信进程增加了开销,让它比UDP速度要慢。UDP优缺点:1.UDP不要求保持一个连接2.UDP没有因接收方认可收到数据包(或者当数据包没有正确抵达而自动重传)而带来的开销。3.设计UDP的目的是用于短应用和控制消息4.在一个数据包连接一个数据包的基础上,UDP要求的网络带宽比TCP更小。三、Socket编程Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。常用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。1、socket调用库函数主要有:创建套接字Socket(af,type,protocol)建立地址和套接字的联系bind(sockid, local addr, addrlen)服务器端侦听客户端的请求listen( Sockid ,quenlen)建立服务器/客户端的连接 (面向连接TCP)客户端请求连接Connect(sockid, destaddr, addrlen)服务器端等待从编号为Sockid的Socket上接收客户连接请求newsockid=accept(Sockid,Clientaddr, paddrlen)发送/接收数据面向连接:send(sockid, buff, bufflen)recv( )面向无连接:sendto(sockid,buff,…,addrlen)recvfrom( )释放套接字close(sockid)2、TCP/IP应用编程接口(API)服务器的工作流程:首先调用socket函数创建一个Socket,然后调用bind函数将其与本机地址以及一个本地端口号绑定,然后调用listen在相应的socket上监听,当accpet接收到一个连接服务请求时,将生成一个新的socket。服务器显示该客户机的IP地址,并通过新的socket向客户端发送字符串 hi,I am server!。最后关闭该socket。main(){int sock_fd,client_fd; /*sock_fd:监听socket;client_fd:数据传输socket */stru
您可能关注的文档
最近下载
- 股票销售话术开场白 [实用股票销售话术技巧].docx VIP
- 左哈尔的Polysystem Theory(多元系统理论).ppt VIP
- 湖南省2024年七年级上学期期中考试数学试题【附参考答案】.pdf VIP
- 2025--2026学年人教PEP版英语三年级上册期中测试卷(含答案,含听力原文,无听力音频).pdf VIP
- 项目资源管理课件.pptx VIP
- 2.2大气的组成和垂直分层课件高中地理中图版(2019)必修一.pptx VIP
- 第二章 呼吸系统疾病病人的护理(23%).pptx VIP
- 道路运输企业安全检查表 .pdf VIP
- 期中试题2024-2025学年人教精通版(2024)英语三年级上册(含答案).pdf VIP
- 自制原伴唱双音轨KTV卡拉OK歌曲.pdf VIP
原创力文档


文档评论(0)