(windows网络编程设计)

(windows网络编程设计)

ID:41032214

大小:89.50 KB

页数:10页

时间:2019-08-14

(windows网络编程设计)_第1页
(windows网络编程设计)_第2页
(windows网络编程设计)_第3页
(windows网络编程设计)_第4页
(windows网络编程设计)_第5页
资源描述:

《(windows网络编程设计)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Windows网络编程技术课程设计报告题目模拟FTP功能院系:数学与计算机学院专业班级:网络091学号:0904681125学生姓名:吴洋指导教师:胡鸣2012年5月14日实验目的:为了使windows系统中的通用接口技术能够在网络环境中得以应用,也就是使得分布在不同主机上的进程间的通信就像读写本地文件那样进行的话就需要构建新的复杂的进程间通信机制。另外,还由于进行网络操作的两个进程可能不在同一机器上,进程间进行通信首先要建立他们之间的联系;其次因为网络协议具有多样性,通信中如何建立一种通用机制支持多种协议是一种更大的挑战。关于网络间进程通信的工作就是要建立一种包含广泛网络语义的程序接口,

2、这种接口可以为网络应用编程提供服务,作为进程通信界面成为开发网络应用软件的强有力工具。实验要求:理解windows环境支持的网络协议的特点;理解套接字的基本功能的作用;掌握基本的套接字函数编程方法;功能简介:此实例完成模拟的FTP功能。服务器端在端口2000处进行侦听,并处于等待连接状态。客户端试图和服务器连接,一旦建立连接,就可以在客户端和服务器端进行文件传输(程序要求文件小于32KB)。客户端输入要传输的文件名,服务器接收到文件名后,将其写到相应的位置。设计思路:客户服务器产生套接字Socket()地址与套接字连接bind()申请一个连接请求connect()产生套接字Socket()

3、地址与套接字连接bind()进入监听状态listen()等待接受请求accept()网上信息网上信息个人负责程序段:(初始化套接字和创建套接字)DWORDStartSock() { WSADATAWSAData;//创建windows扩展套接字数据对象 if(WSAStartup(MAKEWORD(2,2),&WSAData)!=0)//初始化WINSOCK2.DLL版本连接裤 { printf("sockinitfail!"); return(-1); } ServerAddr.sin_family=AF_INET;//设置默认地址协议 ServerAddr.sin_addr.s_a

4、ddr=inet_addr("127.0.0.1");//设置服务器地址 ServerAddr.sin_port=htons(RECV_PORT);//设置接收端口 return(1); } //创建套接字 DWORDCreateSocket() { sock=socket(AF_INET,SOCK_STREAM,0);//使用套接字函数创建一个套接字并绑定协议。 if(sock==SOCKET_ERROR) { printf("sockcreatefail!"); WSACleanup(); return(-1); } return(1); } 总程序代码:1.服务器#include

5、"WinSock.h"#include"windows.h"#include"stdio.h"#pragmacomment(lib,"wsock32.lib")#defineRECV_PORT2000#defineSEND_PORT3000#defineMAX_FILESIZE32*1024SOCKETsock,sock1;sockaddr_inServerAddr;sockaddr_inClientAddr;structFiledata{charffname[30];charffdata[MAX_FILESIZE];intlen;}DataPacket;intAddrlen;DWORDS

6、tartSock(){WSADATAWSAData;if(WSAStartup(MAKEWORD(2,2),&WSAData)!=0){printf("sockinitfail!");return(-1);}return(1);}DWORDCreateSocket(){sock=socket(AF_INET,SOCK_STREAM,0);if(sock==SOCKET_ERROR){printf("sockcreatefail!");WSACleanup();return(-1);}ServerAddr.sin_family=AF_INET;ServerAddr.sin_addr.s_

7、addr=htonl(INADDR_ANY);ServerAddr.sin_port=htons(RECV_PORT);if(bind(sock,(structsockaddr*)&ServerAddr,sizeof(structsockaddr_in))==SOCKET_ERROR){printf("sockbinderrorcode!");return(-1);}return(1);}DWORDWriteFile(c

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

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

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