- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
996计算机网络实验介绍
996《计算机网络》实验介绍(2) 胡鹏 张凤翔 本幻灯所涵盖的实验 实验2 TCP通信程序设计(2~3) 实验3 UDP通信程序设计(4) 实验4 组播通信程序设计(5) 实验目的 掌握客户/服务器(C/S)应用的工作方式 初步掌握用C语言设计网络通信程序 学习和区别TCP/UDP不同的通信机制 理解组播的概念和原理,比较与单播的不同之处 编程语言和环境 语言 C/C++/C#/Perl/Java… 基础是掌握C语言编程 Windows MS Visual系列 VC/VB/VS.NET Borland系列 Delphi /BCB(C++ Builder) Linux 编辑器vi+编译器GCC C/S通信模型——不对称的模型 Where are we? TCP/IP模型 Socket的产生和发展 Socket的起源 最初在70年代由加州大学Berkeley分校开发,其目的是为BSD(Berkeley Software Distribution) UNIX 4.1版操作系统提供网络通信接口。 Socket在各种平台下的发展 随着Berkeley Sockets的广泛应用,九十年代初,Sun、MS等公司共同制定了适应dos和win平台的windows sockets的规范(WinSock) Sun Microsystems为Java也制定了网络通信的API Linux下的socket继承了BSD sockets的风格,并有所改动 什么是套接字/套接口(socket)? 从网络整体来看,它是不同主机上应用程序之间的一个虚拟的接口,具有跨平台特性。 从程序员角度来看,它是应用程序和网络设备的一个接口,特殊的I/O Sockets-Let’s go further! 在UNIX/Linux中,套接口是一种类型的文件 文件描述符只是一个和打开的文件相关联的整数。 套接口描述符(socket descriptor)可以由socket()等函数创建,返回文件描述符 可以使用read()、write()等典型的文件操作函数对其读写操作,也可以使用send()、recv()等套接口操作函数控制数据收发。 不同的网络有不同的套接口 CCITT X.25套接口 Berkeley 套接口 Socket的分类 字节流套接口(Stream Sockets) 面向连接的 数据报套接口(Datagram Sockets) 无连接的 原始套接口(Raw Sockets) 只对Internet协议有效,用于直接访问IP协议 套接口的数据结构(1) 套接口的数据结构(2) Linux下两个结构的比较 两种结构的关系 sockaddr只是一个抽象的概况形式,并不实用 sockaddr_in更加结合了TCP/IP协议族的特点,易于使用,所以编程中常使用这个结构。 但是:socket本身所封装的API都是支持sockaddr结构的,所以填充sockaddr_in结构需要强制转换成sockaddr结构,方可作为参数被socket的标准函数所使用。 字节顺序 主机字节顺序(Host Byte Order) 低位在前,高位在后(little-endian) 基于Intel芯片的机器采取这种存储方式 网络字节顺序(Network Byte Order) 高位在前,低位在后(big-endian) sockaddr_in的变量成员(端口和地址)都必须使用网络字节顺序 转换字节顺序的函数 将IP地址转换为网络字节顺序 inet_aton int inet_aton(const char *cp, struct in_addr *inp); 例如将“0”?0A00A8C0 inet_addr unsigned long inet_addr(const char *cp); 功能同上,但不能处理广播地址 inet_ntoa char * inet_ntoa(struct in_addr in); 例如将0A00A8C0转化为“0” 在我们的实验中,使用前两者中的任何一个都可以,将需要通信的IP地址转化为整数,并填充sockaddr_in的sin_addr成员 Part 2. TCP程序设计 TCP客户服务器通信机制 基本套接口函数(1)- socket() int fd; /* socket descriptor */ if ((fd = socket(AF_INET, SOCK_STREAM, 0)) 0) } fprintf(stderr,“socket creating error\n”); exit(1); }/*注:在TCP或UDP编程的时候,protocol都取0*/ 基本套接口函数(2)- connect() 基本套接口函数(2)- 例子 基本套接
您可能关注的文档
- 探究信息技术与教学过程的整合.doc
- 放飞学生心灵,让其自主发展心得体会:.doc
- 教案、教学设计、教学案例的区别介绍.doc
- 社会保险计算器2011_社会保险计算器2011 社会保险基本常识,社会.pdf
- 美可力水针灸相关信息项目介绍“水针灸”开创了全新的非创伤性绿色保健.pdf
- 肾结石临床路径 (县医院版) 一、肾结石临床路径标准住院流程 (一.docx
- 計畫書X - 自然生態學習網.docx
- 质量分析学习心得.doc
- (业余)大专班药理学作业题(A).doc
- (002-02)【工程级培训】快速掌握服务层研发(第二阶段 - GOOGLE CODE.docx
- 8.1 物业档案资料管理. - 电工电子技术-精品课程.ppt
- 5. GRID 一、主題 A PLASTIC GRID COVERS THE OPEN OF A CYLINDRICAL.docx
- 99 EDUCATION DEPARTMENT COURSE OUTLINES - 元培科技大學.docx
- BⅠ0104 什么是化学教学过程?.doc
- CHAPTER1 研究設計與量表分析.ppt
- CPMP 課後心得分享.ppt
- CY型高磁超强除垢防垢节能器 应用在焦化行业锅炉、初冷气等设备的作用.docx
- DOC影像式插管辅助装置.doc
- E-LEARNING过程中的语法学习 ---英语语法课件教学设计介绍.ppt
- ECAMION INC公司介紹簡報 - 台灣智慧型電網產業協會.pptx
文档评论(0)