linux下檔案傳輸程式

2021-06-06 21:49:22 字數 2137 閱讀 1203

//客戶端

#include

#include

#include

#include

#include

#include

//#include

#include

#include

#include

#include

#define port 1234

#define maxdatasize 100

int main(int argc,char *argv)

/*if((he=gethostbyname(argv[1]))==null)

*//*

if(inet_pton(af_inet,argv[1],&server.sin_addr))

*/if((sockfd=socket(af_inet,sock_stream,0))==-1)

bzero(&server,sizeof(server));

server.sin_family=af_inet;

server.sin_port=htons(port);

if(inet_pton(af_inet,argv[1],&server.sin_addr) <=0)

in_addr *)he->h_addr);

if(connect(sockfd,(struct sockaddr *)&server,sizeof(server))==-1)

buf[num]='\0';

printf("server message: %s\n",buf);

//接收檔案內容儲存在buffer中

if((num=recv(sockfd,buffer,maxdatasize,0))==-1)

buffer[num]='\0';

printf("%s\n",buffer);

//建立檔案

input = fopen(buf,"wb");

if(input == null)

int opt=so_reuseaddr;

setsockopt(listenfd,sol_socket,so_reuseaddr,&opt,sizeof(opt));

bzero(&server,sizeof(server));

server.sin_family=af_inet;

server.sin_port=htons(port);

server.sin_addr.s_addr=htonl(inaddr_any);

if(bind(listenfd,(struct sockaddr *)&server,sizeof(server))==-1)

if(listen(listenfd,backlog)==-1)

len=sizeof(client);

if((connectfd=accept(listenfd,(struct sockaddr*)&client,&len))==-1)

//printf("you got a connection from client's ip is %s,port is %d\n",ntohl(client.sin_addr.s_addr),htons(client.sin_port));

//開啟檔案

input = fopen(argv[1],"rb");

if(input == null)

把檔案中的內容讀到buffer中

nn = fread(buffer,1,12,input);

buffer[12]='\0';

printf("%s\n",buffer);

//傳送檔名

send(connectfd,argv[1],strlen(argv[1]),0);

睡眠1秒,使客戶端準備接收資料

sleep(1);

//傳送buffer

mm=send(connectfd,buffer,nn,0);

printf("%d\n",mm);

fclose(input);

close(connectfd);

close(listenfd);

}注意:nn = fread(buffer,1,12,input)返回值nn為12。如果是nn = fread(buffer,3,4,input);則返回值為4.

Linux檔案傳輸

不同系統間的檔案傳輸 tar 打包 tar c 新建打包檔案 tar t 檢視打包的內容,重點在檢視檔名 tar x 解打包,解壓縮 tar j bzip2壓縮解壓縮 tar z gzip壓縮解壓縮 tar v 在壓縮 解壓縮的過程中,將正在處理的檔案名列出來 tar r 新增檔案到包中 tar f...

Linux檔案傳輸

從 遠端 複製到 本地,只要將 從 本地 複製到 遠端 的命令 的 後2個引數 調換順序 即可 例如 scp root www.cumt.edu.cn home root others music home space music 1.scp r www.cumt.edu.cn home root ...

linux 檔案傳輸

tar,cpio 歸檔命令 tar cvf 歸檔.tar file1 file2 tar cvf tar file remove files 壓縮並且刪除原檔案 gzip file 壓縮檔案成file.gz gzip d file.gz 解壓 bzip2 file 用gzip壓縮 bzip2 d f...