网络通信软件的设计实验指书.docVIP

  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文档。上传文档
查看更多
网络通信软件的设计实验指书

《专业验综合实验》: 网络通信软件的设计 实验目的和要求:两台微机通信程序的设计;掌握网络通信软件的基本设计方法和技术 主要仪器设备:两台pc机 软件工具:C语言 实验内容:采用两台PC机,采用套接字编程,实现TCP,UDP和IP的协议。 具体要求: 1 实验报告的书写要求: 要求写出实验目的,实验内容,实验原理,实验仪器的IP地址,实验结果,并随原始程序。 (原始程序与提供的程序不能完全相同,各同学之间的实验报告不能相同,否则不能通过)。 2 要求同学们先看懂资料,并认真编程,调试程序,得出结果。 套接字的基本知识 在VC中进行WINSOCK编程时,需要引入如下两个库文件:WINSOCK.H(这个是WINSOCK API的头文件,WIN2K以上支持WINSOCK2,所以 可以用WINSOCK2.H);Ws2_32.lib(WINSOCK API连接库文件). 使用方式如下: #include winsock.h #pragma comment(lib,ws2_32.lib) 下面我们通过具体的代码演示服务器和客户端的工作流程: 首先,建立一个WSADATA结构,通常用wsaData WSADATA wsaData; 然后,调用WSAStartup函数,这个函数是连接应用程序与winsock.dll的第一个调用.其中,第一个参数是WINSOCK 版本号,第二个参数是指向 WSADATA的指针.该函数返回一个INT型值,通过检查这个值来确定初始化是否成功.调用格式如下:WSAStartup(MAKEWORD(2,2),wsaData),其中 MAKEWORD(2,2)表示使用WINSOCK2版本.wsaData用来存储系统传回的关于WINSOCK的资料. if(iResuit=WSAStartup(MAKEWORD(2,2),wsaData)!=0) {printf(WSAStartup failed:%d,GetLastError()); //返回值不等与0,说明初始化失败 ExitProcess(); //退出程序 } 应用程序在完成对请求的SOCKET库使用后,要调用WSACleanup函数来接触SOCKET库的绑定,并且释放资源. 注意WSAStartup初始化后,必须建立一个SOCKET结构来保存SOCKET句柄. 下面我们建立一个SOCKET. 首先我们建立一个m_socket的SOCKET句柄,接着调用socket()函数,函数返回值保存在m_socket中.我们使用AF_INFE,SOCK_STREAM,IPPROTO_TCP 三个参数.第一个表示地址族,AF_INET表示TCP/IP族,第二个表示服务类型,在WINSOCK2中,SOCKET支持以下三种类型: SOCK_STREAM,流式套接字 ;SOCK_DGRAM, 数据报套接字 ;SOCK_RAW,原始套接字 第三个参数表示协议: IPPROTO_UDP , UDP协议 用于无连接数据报套接字 IPPROTO_TCP TCP协议 用于流式套接字 IPPROTO_ICMP ICMP协议用于原始套接字 m_socket=socket(AF_INFE,SOCK_STREAM,IPPROTO_TCP); //创建TCP协议 以下代码用于检查返回值是否有错误: if(m_scoket==INVALID_SOCKET) {prinrf(Error at socket():%d\n,GetLastError()); WSACleanup(); //释放资源 return; } 说明,如果socket()调用失败,他将返回INVALID_SOCKET. 为了服务器能接受一个连接,他必须绑定一个网络地址,下面的代码展示如何绑定一个已经初始化的IP和端口的Socket.客户端程序用这个 IP地址和端口来连接服务器. sockaddr_in service; service.sin_family=AF_INET; //INTERNET地址族 service.sin_addr.s_addr=inet_addr(127.0.0.1); //将要绑定的本地IP地址 service.sin_port=htons(27015); //27015将要绑定的端口 下面我们

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档