xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 7KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-07
  • 語言: 其他
  • 標(biāo)簽: linux??c??文件傳輸??

資源簡介

多客戶端需要從服務(wù)器下載文件,本設(shè)計(jì)基于socket通信完成的文件分發(fā)。

資源截圖

代碼片段和文件信息

#include????//for?socket
#include???//for?socket
#include? ?//for?bzero
#include???//for?sockaddr_in
#include????????//for?errno
#include????//for
#include????????//for?printf
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include????????//for?mulu

#define?MAXBUF????1024
//#define?MYPORT????22222
//#define?IPADRESS??“127.0.0.1“
#define?MD5FILE???“temp.md5“??//定義存放md5值的文件
#define?TEMPFILE??“temp“?
#define?max(xy)??((x>y)?1:0)
#define?PATHNAME??“/home/raohl/Desktop/client/client“
#define?LOGPATH???“/home/raohl/Desktop/client/client/log“
#define?LOGFILE?“client.log“

void?setdir(void); //工作環(huán)境配置
void?useage(void); //使用方法信息
void?getcurrenttime(void);?? //獲取當(dāng)前時(shí)間
void?writelog(char?ptr[]);?? //記錄日志
void?can_write(char?*filename);? //發(fā)送文件處理
void?handle_sock(int?socketchar?*filename); //socket處理
int?CreateDir(const???char???*sPathName);?? //創(chuàng)建目錄
int?getfilemd5(char?*md5valuechar?*filename); //獲取md5
int?getlasttime(char?*filelasttimechar?*filename);//獲取文件最新更新時(shí)間

int?main(int?argcchar?**argv)
{
struct?sockaddr_in?dest;//與服務(wù)器連接
int?sockfd;//監(jiān)聽sock
int?len;
char?server_ip[30];
char?filename[200];
struct?stat?tfile;
unsigned?int?server_port;
char?buffer[MAXBUF+1];
if?(argc?!=?4)
{
?useage();//help?info
????printf(“error?formatit?must?be:\n\t\t%s?IP?port?filename\n“argv[0]);
?writelog(“Client?input?format?error!!\n“);
????exit(EXIT_FAILURE);
}
//獲取當(dāng)前時(shí)間
?getcurrenttime();
//change?work?path
?setdir();
//get?current?path?env
char?*p;
p=getcwd(NULL128);
printf(“current?path?:%s\n“p);
free(p);

?bzero(server_ipsizeof(server_ip));
????bzero(filenamesizeof(filename));
?strncpy(server_ip?argv[1]?strlen(argv[1]));
????server_port?=?atoi(argv[2]);
????strncpy(filename?argv[3]?strlen(argv[3]));
//創(chuàng)建本地socket
if?((sockfd=socket(AF_INETSOCK_STREAM0))<0)
{
????perror(“SOCKET?no?exist“);
?writelog(“Client?Create?Socket?error!!\n?“);
????exit(errno);
}
else
????printf(“\n\t\t\t...File?Client?start?on...\n?Create?socket?success.?SOCKET=%d\n\r“sockfd);

bzero(&destsizeof(dest));
dest.sin_family=AF_INET;
dest.sin_port=htons(atoi(argv[2]));
if?(inet_aton(argv[1](struct?in_addr?*)?&dest.sin_addr.s_addr)==0)
{//服務(wù)器的IP地址來自程序的參數(shù),取決于服務(wù)器設(shè)置
perror(“argv[1]“);
writelog(“Client?input?IP?error!!\n“);
exit(errno);
}
//發(fā)起連接
if?(connect(sockfd?(struct?sockaddr?*)?&destsizeof(dest))==-1)
{
perror(“Connect!!!error!!!\n“);
writelog(“Client?connect?server?error!!\n“);
exit(errno);
}
printf(“?Server??Already?Connected!!?Waiting...\n“);

//文件名發(fā)送給服務(wù)器
bzero(buffersizeof(buffer));
???sprintf(buffer“%s“filename);
writelog(“\n文件下載判斷中.......\n“);
send(sockfdbufferstrlen(buffer)0);

//?接收md5和最近文件的更新時(shí)間
bzero(buffersizeof(buffer));
if((recv(sockfdbufferMAXBUF0))<=0)
{
writelog(“The?s

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件???????9491??2012-08-08?11:10??server.c

?????文件???????9346??2012-08-07?14:22??client.c

-----------?---------??----------?-----??----

????????????????18837????????????????????2


評論

共有 條評論