计算机网络实验56552_第1页
计算机网络实验56552_第2页
计算机网络实验56552_第3页
计算机网络实验56552_第4页
计算机网络实验56552_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学生实验报告 实验课名称: 计算机网络 实验项目名称: Windows网络编程 专 业 名 称: 软件工程 班 级: 2014240601 学 号: 18 学 生 姓 名: 钱江 教 师 姓 名: 赵 彦 锋 2017 年 5 月 28 日每组人数 1人 实验机器编号 实验日期 2017年5月 24日 实验室名称 计算机实验教学中心 一、 实验名称:Windows网络编程二、 实验目的与要求1熟练掌握TCP/IP协议族的体系结构2掌握套接字的概念3掌握Windows Socket编程原理4. 熟练掌握Visual C+的网络编程方法三、 实验原理1.客户机/服务器工作方式2.TCP编程模式3.

2、UDP编程模式四、 实验内容 1.本题目是让大家进一步理解Winsock编程的基本思路和方法。要求运用流套接字在TCP/IP网络上实现客户机/服务器方式的进程通信。要求包括客户机程序和服务器程序。 2. 编写一个简单的FTP客户机程序,它可以向FTP服务器发送命令,并接收FTP服务器返回的响应与数据。要求程序具有图形化界面,可以输入FTP服务的相关信息(包括IP地址、用户名和密码),输出交互过程中的FTP命令与响应信息,以及从FTP服务器的根目录获得文件列表。五、 程序流程图1.服务器端开始加载套接字库创建套接字socket绑定套接字到本地地址和端口bind设定套接字为监听模式listen接受

3、客户请求accept用返回的套接字和客户端进行通信send是是否还有客户请求否关闭套接字closesocket结束2. 客户端开始加载套接字库创建套接字socket向服务器发送连接请求connect和服务器端进行通信send关闭套接字closesocket结束六、 实验结果与分析客户端:首先必须创建套接字,然后要指定需要连接的服务器IP地址,同时也要设定需要连接的服务器端口号。然后可以使用connect()函数进行与设定服务器的连接。连接完成后,可以通过recv()函数接收服务器端发过来的服务器IP地址以及字符串信息。也可以通过send()函数向服务器端发送消息,有刚开始程序中给出的用户的姓名

4、学号信息,用户还可以自己在后面添加相关姓名学号信息。服务器端:首先通过相应函数htonl()和htons()用来分别将主机字节序long型转换为网络字节序以及将端口转换成字符,以便于将socket通过bind()绑定到相应地址和端口上,再设置监听函数,并设置最大队列长度为5。然后就可以通过send()函数向客户端发送在服务器端获取到的IP地址以及一串字符串“计算机网络代课教师:赵彦峰”。同时,服务器端也可以通过recv()函数接收从客户端发过来的消息,显示在屏幕上即相关学生的姓名学号的信息。最后,必须关闭socket套接字。七、讨论和回答问题及体会通过本次实验,能够从编程中感受到要想实现TCP

5、/IP协议的网络通信,首先要使用套接字作为基本操作单元,将套接字看作不同主机间的进程进行双向通信的端点。接着对双方进行消息间传送实则,我们可以看成是对socket套接字的使用,对ip地址和端口的绑定都是在服务器端进行,客户端直接可获取,还有对双方传送的消息也必须使用字符串的形式先放到一个数组中在传送。最后,我们必须首先打开服务器端再打开客户端,这样才能成功连接,否则会看到在客户端的一串乱码,即连接失败。以前只是在linux的学习过程中,接触过socket的一些编程,当时对两个窗口间能够通信很是感兴趣,而计算机网络系统的详细补充了,是我对socket有了深入的认识和了解,本次实验也是采用了win

6、dows编程下常用的vs。课本上学到的终究还是很少,只有通过我们亲自动手操作,才会对socket通信有了更深的理解。附录:程序源代码1. 服务器端:#include "stdafx.h"#include <Winsock2.h>#include <stdio.h>#pragma comment(lib, "Ws2_32.lib")int _tmain(int argc, _TCHAR* argv) WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested

7、 = MAKEWORD( 1,1);err = WSAStartup( wVersionRequested, &wsaData );if( err != 0 ) return 0; if( LOBYTE( wsaData.wVersion ) != 1| HIBYTE( wsaData.wVersion ) != 1) WSACleanup( );return 0; SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY

8、); addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(6001); bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR); listen(sockSrv,5); SOCKADDR_IN addrClient; int len=sizeof(SOCKADDR);while(1) SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);char sendBuf100; sprintf(sendBuf,"

9、 IP服务器地址:%s",inet_ntoa(addrClient.sin_addr);char* str = "n服务器端过来的." strcat(sendBuf,str); send(sockConn,sendBuf,strlen(sendBuf)+1,0);char recvBuf100; recv(sockConn,recvBuf,100,0); printf("%sn",recvBuf); recv(sockConn,recvBuf,100,0); printf("%sn",recvBuf); closesocke

10、t(sockConn); return 0; 2. 客户端#include "stdafx.h" #include <Winsock2.h> #include <stdio.h> #pragma comment(lib,"Ws2_32.lib")void main() WORD wVersionRequested; WSADATA wsaData;int err; wVersionRequested = MAKEWORD( 1, 1); err = WSAStartup( wVersionRequested, &wsaDa

11、ta );if( err != 0 ) return; if ( LOBYTE( wsaData.wVersion ) != 1| HIBYTE( wsaData.wVersion ) != 1) WSACleanup( ); return; SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr=inet_addr("3"); addrSrv.sin_family=AF_INET; addrSrv.sin_p

12、ort=htons(6001); connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR); char recvBuf100; recv(sockClient,recvBuf,100,0); printf("%sn",recvBuf); send(sockClient,"姓名:钱江n学号:201424060118nIP地址:3", strlen("姓名:钱江n学号:201424060118nIP地址:3")+1,0); char str100; char str1100; char str2100; printf("输入姓名:"); scanf("%s", str1); sprintf(str,"姓名:%sn",str1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论