📄 client2.c
字号:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include<sys/types.h>
#include<dirent.h>
int main(){
struct sockaddr_in addr_svr;
int sockfd;
char msg[100];
char account[100];
char password[100];
char folderMSG[100];
char folder[100];
char fileMSG[100];
char file[100];
char content[100];
// Set Server Address
memset(&addr_svr, 0, sizeof(addr_svr));
addr_svr.sin_family= AF_INET;
addr_svr.sin_port= htons(80);
addr_svr.sin_addr.s_addr = inet_addr("192.168.0.155");
// Create Client Socket
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if(sockfd == -1) {
printf("Error: socket()\n");
exit(1);
}
// Connect to Server
if(connect(sockfd,(struct sockaddr *)&addr_svr, sizeof(addr_svr)) == -1){
printf("Error: connect()\n");
exit(1);
}
while(strcmp(msg,"ok"))
{
printf("Enter your FTP account.\n");
scanf("%s", account);
write(sockfd, account, 10);
read(sockfd, msg, 10);
if(strcmp(msg,"ok")!=0)
printf("Account doesn't exist!\n");
}
strcpy(msg,"none");
while(strcmp(msg,"ok"))
{
printf("Account Correct!\nEnter your password.\n");
scanf("%s", password);
write(sockfd, password, 10);
read(sockfd, msg, 10);
if(strcmp(msg,"ok")!=0)
printf("Password is wrong!\n");
else
printf("Log in successfully!! welcome\n");
}
//DIR *dir = opendir("p3/test");
//read(sockfd, folderMSG, 100);
//printf("%s\nWhich folder?\n", folderMSG);
//scanf("%s", folder);
//write(sockfd, folder, 100);
read(sockfd, fileMSG, 100);
while(1)
{
printf("%s\nWhich file or folder?\n", fileMSG);
scanf("%s", file);
write(sockfd, file, strlen(file)+1);
FILE *fin = fopen(file, "a");
long size = ftell(fin);
while(1)
{
read(sockfd, content, 10);
if(strcmp(content,"END")!=0)
{
fwrite(content, 1, size, fin);
printf("%s\n",content);
}
else
{
printf("END OF FILE\n");
fclose(fin);
break;
}
}
}
read(sockfd, msg, 100);
printf("%s\n", msg);
// Close socket
close(sockfd);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -