题目一:文件传输
软件名:MYFTP(分服务器端和客户端两部分)
功能:实现类似FTP的功能(在FTP服务器与客户端之间传送文件)。
编程语言及工具:自选(如VB、JAVA、C#、Delphi、VC)
描述:
服务器端:1.指定一个目录作为FTP目录(之后所有的文件操作均在此目录下进行),
2.接收客户端的命令请求并提供相应的服务。
客户端:完成与FTP用户的人机界面,以命令的方式向服务器请求服务,主要的命令有:
1.CONNECT IP地址 端口号
指定FTP服务器的IP地址和端口号,连接到服务器。
响应:连接成功/失败。
2.LOGIN 用户名
用户登录(假设在服务器端有用户管理功能)。
响应:若用户不存在,提示“无此用户”;若用户存在,提示“密码:”;用户输入密码后,若正确提示“登录成功”;若不成功,提示“密码错”。
3.DIR
显示FTP服务器的FTP目录的文件列表(假设无子目录。)
响应:目录列表(只要文件名即可)。
4. GET 文件名
将FTP目录下的文件下载到本地。
响应:传送成功/失败/无此文件。
5. PUT 文件名
将本地文件上传到FTP目录。
响应:传送成功/失败/无此文件。
6. HELP
显示MYFTP软件的功能(此命令与网络通信无关)。
7. BYE
退出MYFTP软件。
Client:
#include<iostream>
#include<winsock2.h>
/* interfAcer */
/*欢迎访问我的csdn blog http://blog.youkuaiyun.com/nibiru_holmes*/
#pragma comment (lib,"ws2_32")
using namespace std;
int login() {
char user[6] = { "user" };
char pass[6] = { "pass" };
char user_in[MAXBYTE] = {NULL};
char pass_in[MAXBYTE] = {NULL};
cout << "Please login in" << endl;
cout << "UserName:";
cin >> user_in;
cout << "PassWord:";
cin >> pass_in;
if (!strcmp(user, user_in) && !strcmp(pass, pass_in)) { cout << "login successful!!!"<<endl; return 1; }
cout << "login error !!!" << endl;
return 0;
}
void Sender(char FileName[], SOCKET clientSock) {
char ok[1024] = { NULL };
char SendBuf[1024] = { NULL };
DWORD dw