《计算机网络》实验报告格式

《计算机网络》实验报告格式

ID:42617181

大小:66.50 KB

页数:6页

时间:2019-09-18

《计算机网络》实验报告格式_第1页
《计算机网络》实验报告格式_第2页
《计算机网络》实验报告格式_第3页
《计算机网络》实验报告格式_第4页
《计算机网络》实验报告格式_第5页
资源描述:

《《计算机网络》实验报告格式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、黑龙江大学实验报告课程名称计算机网络(ComputerNetwork)实验项目名称Socket通信编程实验时间(日期及节次)第-周,周4,第7-8节专业计算机科学与技术学生所在学院计算机科学技术学院年级2013学号20135266姓名王力国指导教师姜誉教授实验地点4号楼513实验成绩出勤、预习情况操作技术及结果实验报告附加:综合创新能力实验综合成绩教师签字黑龙江大学教务处-5-实验名称Socket通信编程实验目的通过本实验掌握socket通信程序的编写、通信原理,实际编写通信程序。本实验是后续实验的基础。实验类型设计型实验环境编程环境:VisualC++6.0运行环境:Window

2、s7实验要求要求做到在一台计算机上实现两个程序的通信,以及在两台计算机上实现两个应用程序的通信。实验内容与步骤1、实验中主要使用的技术和算法:本实验使用了基于UDP协议下的SOCKET通信技术。分成服务端和客户端2部分:服务器端(接收端)涉及到的流程(算法):(1)、创建套接字(socket)。(2)、将套接字绑定到一个本地地址和端口上(bind)。(3)、等待接收数据(recvfrom)。(4)、关闭套接字。客户端(发送端)涉及到的流程(算法):(1)、创建套接字(socket)。(2)、向服务器发送数据(sendto)。(3)、关闭套接字。2、设计思想//-5-例如:函数的设计

3、和原因,控制流的设计和原因,接口的设计等;画出模块控制流程图3、编码服务器端:获取本机地址函数:char*getIP(){WSADATAswadata;charname[255];char*ip;PHOSTENThostinfo;//包含主机信息的结构体if(WSAStartup(MAKEWORD(2,0),&swadata)==0){if(gethostname(name,sizeof(name))==0){if(gethostbyname(name)!=NULL){hostinfo=gethostbyname(name);ip=inet_ntoa(*(structin_addr

4、*)*hostinfo->h_addr_list);//网络字节序转换成主机序}}}WSACleanup();returnip;}主函数:intmain(){WSADATAwsaData;WORDsockVersion=MAKEWORD(2,2);if(WSAStartup(sockVersion,&wsaData)!=0)//WSAStartup函数被用来初始化Socket环境{-5-return0;}//创建套接字,1.协议族2.套接字类型(流套接字)3.使用的通信协议SOCKETsServer=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);i

5、f(sServer==INVALID_SOCKET){printf("socket创建失败!");return0;}char*ipadd;ipadd=getIP();//获取本机IP地址sockaddr_insin;sin.sin_family=AF_INET;sin.sin_port=htons(1129);//将主机字节顺序转为网络字节顺序sin.sin_addr.S_un.S_addr=inet_addr(ipadd);;if(bind(sServer,(LPSOCKADDR)&sin,sizeof(sin))==SOCKET_ERROR){//绑定地址信息printf(

6、"绑定失败!");return0;}if(listen(sServer,5)==SOCKET_ERROR){//监听状态printf("监听失败!");closesocket(sServer);return0;}sockaddr_inremoteAddr;SOCKETsClient;intnAddrLen=sizeof(SOCKADDR_IN);charrevData[255];//用于存储接收到的数据的数组while(1){-5-printf("tip地址%s",ipadd);printf("t端口号:1129");printf("t等待来自客户端的连接

7、!");//1.套接字2.套接字结构3.地址结构长度用于取出请求sClient=accept(sServer,(SOCKADDR*)&remoteAddr,&nAddrLen);if(sClient==INVALID_SOCKET){printf("接受失败!");continue;}printf("t这边是服务器端,并且已接受来自%s的连接.",inet_ntoa(remoteAddr.sin_addr));printf("<----轮到客户端器端

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。