网络编程第二讲:利用winsock实现TCP编程.pdfVIP

网络编程第二讲:利用winsock实现TCP编程.pdf

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络编程第二讲:利用winsock实现TCP编程

网络编程 – 第二讲 利用winsock 实现TCP 编程 主要内容: 第一部分:socket 基础知识 1:与套接字地址相关的三种数据结构 2:套接字的三种类型 3:与字节序相关的转换函数 4 :与IP 地址相关的转换函数 第二部分:WinSock 编程基础 1:TCP 三次握手 2:CS 模式的TCP 通信过程 3:常用socket 函数 第三部分:基于TCP 的Socket 编程示例 1:编写TCPserver 2:编写TCPclient 网络编程 – 第二讲 第一部分 1:与套接字地址相关的三种数据结构 (1) 适用于各种通信域的socket 地址结构 问题:这样的结构体,每个结构体变量占多少字节? (2) 专用于Internet 通信域的socket 地址结构 问题:这个地址结构和sockaddr 的区别? 若有某服务器的地址结构定义如下: sockaddr_in serverAddr; 则怎样表示其端口号和IP 地址 (3) 专用于存储IP 地址的数据结构 网络编程 – 第二讲 问题:一个in_addr 类型的变量占多少字节? 怎样显示一个IP 地址,如””? 2: socket 的三种类型 (1) 流式套接字(SOCK_STREAM):提供了一个面向连接、可靠的数据传输服务,数 据无差错、无重复地发送,且按发送顺序接收。内设流量控制,避免数据流超限;数据被看 作是字节流,无长度限制。文件传送协议(FTP)即使用流式套接字。 (2) 数据报套接字(SOCK_DGRAM):提供了一个无连接服务。数据包以独立包形式 被发送,不提供无错保证,数据可能丢失或重复,并且接收顺序混乱。网络文件系统(NFS) 使用数据报式套接字。 (3) 原始套接字(SOCK_RAW):该接口允许对较低层协议,如 IP、ICMP 直接访问。 常用于检验新的协议实现或访问现有服务中配置的新设备。 3: 与字节序相关的转换函数 (1) 什么是字节序 网络编程 – 第二讲 多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序。 (2) 两种字节序 大端格式:BE - Big Endian:低位数据存储在高地址 小端格式:LE –Little Endian:低位数据存储在低地址 对于0,01 是高位数据,04 是低位数据 1000-1003 是地址 LE (x86 ) BE (IBM3700) 04 1000 01 1000 03 1001 02 1001 02 1002 03 1002 01 1003 04 1003 (3) 为什么需要字节序转换 为了在不同字节序的主机之间实现数据通信,必须提供 一种能够被双方所能识别的字节序,因此TCP/IP 选择 BE 作 为网络数据的存储标准。 即LE 格式的主机数据在数据传输之前必须转换成BE 存 储格式,而从网络获取的数据也必须从BE 转换成LE 网络编程 – 第二讲 (4) 字节序转换函数 函数中h 表示host:主机字节序,n 表示net:网络字节序 htonl:将unsigned long 类型的host 字节序转换为net 字节序 ntohs:将unsigned short 类型的net 字节序转换为host 字节序 htonl()和ntohl()用于IP 地址的字节序转换 htons()和ntohs()用于端口号的字节序转换 问题: 已知:sockaddr_in serverAddr ; 若希望将该服务器地址的端口号设为300,怎么办?

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档