91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-16
  • 語(yǔ)言: C/C++
  • 標(biāo)簽:

資源簡(jiǎn)介

模版來(lái)自http://blog.csdn.net/ljd_1986413/article/details/7940938,只是添加了斷點(diǎn)功能,本人新手,歡迎大家指正錯(cuò)誤。

資源截圖

代碼片段和文件信息

#include??//?sockaddr_in?
#include??//?socket?
#include??//?socket?
#include????//?printf?
#include????//?exit?
#include????//?bzero?
#include???

#include?
#define?SERVER_PORT?8000?
#define?BUFFER_SIZE?1024?
#define?FILE_NAME_MAX_SIZE?512?
??
int?main()?
{?
??//?聲明并初始化一個(gè)客戶端的socket地址結(jié)構(gòu)?
??struct?sockaddr_in?client_addr;?
??bzero(&client_addr?sizeof(client_addr));?
??client_addr.sin_family?=?AF_INET;?
??client_addr.sin_addr.s_addr?=?htons(INADDR_ANY);?
??client_addr.sin_port?=?htons(0);?
??
??//?創(chuàng)建socket,若成功,返回socket描述符?
??int?client_socket_fd?=?socket(AF_INET?SOCK_STREAM?0);?
??if(client_socket_fd???{?
????perror(“Create?Socket?Failed:“);?
????exit(1);?
??}?
??
??//?綁定客戶端的socket和客戶端的socket地址結(jié)構(gòu)?非必需?
??if(-1?==?(bind(client_socket_fd?(struct?sockaddr*)&client_addr?sizeof(client_addr))))?
??{?
????perror(“Client?Bind?Failed:“);?
????exit(1);?
??}?
??
??//?聲明一個(gè)服務(wù)器端的socket地址結(jié)構(gòu),并用服務(wù)器那邊的IP地址及端口對(duì)其進(jìn)行初始化,用于后面的連接?
??struct?sockaddr_in?server_addr;?
??bzero(&server_addr?sizeof(server_addr));?
??server_addr.sin_family?=?AF_INET;?
??if(inet_pton(AF_INET?“127.0.0.1“?&server_addr.sin_addr)?==?0)?
??{?
????perror(“Server?IP?Address?Error:“);?
????exit(1);?
??}?
??server_addr.sin_port?=?htons(SERVER_PORT);?
??socklen_t?server_addr_length?=?sizeof(server_addr);?
??
??//?向服務(wù)器發(fā)起連接,連接成功后client_socket_fd代表了客戶端和服務(wù)器的一個(gè)socket連接?
??if(connect(client_socket_fd?(struct?sockaddr*)&server_addr?server_addr_length)???{?
????perror(“Can?Not?Connect?To?Server?IP:“);?
????exit(0);?
??}?
??
??//?輸入文件名?并放到緩沖區(qū)buffer中等待發(fā)送?
??char?file_name[FILE_NAME_MAX_SIZE+1];?
??bzero(file_name?FILE_NAME_MAX_SIZE+1);?
??printf(“Please?Input?File?Name?On?Server:\t“);?
??scanf(“%s“?file_name);?

??//?打開(kāi)文件,準(zhǔn)備寫(xiě)入?
??int?fp=?open(file_name?O_WRONLY?|?O_APPEND?|?O_CREAT?0666);?
??if(-1?==?fp)?
??{?
????printf(“File:\t%s?Can?Not?Open?To?Write\n“?file_name);?
????exit(1);?
??}?

??const?int?n?=?lseek(fp?0?SEEK_END);
??char?str[20]=?“&“;
??sprintf(str?“&%d“?n);
??strcat(file_name?str);
??//?向服務(wù)器發(fā)送buffer中的數(shù)據(jù)?
??char?buffer[BUFFER_SIZE];?
??bzero(buffer?BUFFER_SIZE);?
??strncpy(buffer?file_name?strlen(file_name)>BUFFER_SIZE?BUFFER_SIZE:strlen(file_name));?
??if(send(client_socket_fd?buffer?BUFFER_SIZE?0)???{?
????perror(“Send?File?Name?Failed:“);?
????exit(1);?
??}?
??//?從服務(wù)器接收數(shù)據(jù)到buffer中?
??//?每接收一段數(shù)據(jù),便將其寫(xiě)入文件中,循環(huán)直到文件接收完并寫(xiě)完為止?
??bzero(buffer?BUFFER_SIZE);?
??int?length?=?0;?
??while((length?=?recv(client_socket_fd?buffer?BUFFER_SIZE?0))?>?0)?
??{?
????if(write(fp?buffer?length)?????{?
??????printf(“File:\t%s?Write?Failed\n“?file_name);?
??????break;?
????}?
????bzero(buffer?BUFFER_SIZE);?
??}?
??//?接收成功后,關(guān)閉文件,關(guān)閉socket?
??printf(“Receive?File:\t%s?From?Server?IP?Successful!\n“?file_name);?
??close(fp);?
??//fp?=?NULL;
??close(client_socket_fd);?
??return?0;?
}?


?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-09-01?14:22??FTP\cli\
?????文件????????3310??2015-09-01?14:21??FTP\cli\client.c
?????目錄???????????0??2015-09-01?14:22??FTP\ser\
?????文件????????3850??2015-09-01?11:20??FTP\ser\server.c
?????目錄???????????0??2015-09-01?14:22??FTP\

評(píng)論

共有 條評(píng)論

相關(guān)資源