- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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将要绑定的端口
下面我们
您可能关注的文档
最近下载
- 2023年阳江市社区工作者招聘考试真题 .pdf VIP
- 《高效课堂和有效教学模式研究》结题报告材料.pdf VIP
- 生猪、牛、羊、鸡、鸭、鹅屠宰HACCP计划模式表.pdf VIP
- 2024-2025学年广西壮族自治区小升初英语真题(含答案).pdf VIP
- 环保项目设备供货及服务保障措施.docx VIP
- 初中物理每日默写知识点(1)_Decrypted.pdf VIP
- 人教版信息科技四年级《多彩的数字世界》教学PPT课件.pptx VIP
- 我的幸福大家庭.pptx VIP
- 安全教育开学第一课主题班会PPT课件.pptx VIP
- (2025秋新版)人教版数学二年级上册教学计划.docx VIP
文档评论(0)