伺服器端:
客戶端:
#include;
#include;
#include;
#include;
#include;
#include;
#include;
#include;
#include;
#include;
#include;
#include;
#include;
#include;
#define max_size 1024*40
#define serv_port 2500
void connectudp(char name[20],int sockfd,struct sockaddr *pservaddr,socklen_t servlen)
else
printf("connect server ok!/n");
fd = open(name,o_rdonly);
if(fd==-1)
i=0;
while(1)
else if(ret==0)
memset(buf,0,max_size);
if(fd_isset(sockfd,&wrset))
else if(rlen==0)
printf("all complete/n");
close(fd);
close(sockfd);
exit(0);
}wlen = write(sockfd,buf,rlen);
if(wlen != rlen)
i++;
usleep(500);
printf("the %d times read/n",i);}}
}int main(int argc ,char *argv)
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family= af_inet;
servaddr.sin_port = htons(serv_port);
if(inet_pton(af_inet,argv[1],&servaddr.sin_addr) <= 0)
fh = argv[2];
sockfd =socket(af_inet,sock_dgram,0);
r = fcntl(sockfd, f_getfl, 0);
fcntl(sockfd, f_setfl, r & ~o_nonblock);
connectudp(argv[2],sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr));
fprintf(stderr,"serverip:/t%s/n",argv[1]);
if(stat(argv[2],&fsize) == -1)
perror("failed to get fiel statusi/n");
else
fprintf(stderr,"file name:/t%s/nfile size:/t%dk/n",argv[2],fsize.st_size/1024);
error2=sysinfo(&s_info);
time2 = s_info.uptime;
printf("tranfice file time =%fs/n",(time2-time1));
}makefile:
all:send recv
send:send.c
gcc -wall send.c -o send
recv:recv.c
gcc -wall recv.c -o recv
clean:
rm -rf send recv
linux下udp大檔案傳輸
近日小弟做了個linux下使用者資料報協議大檔案傳輸程式發上來與大家共勉。在 redhat 9.0 下編譯通過。最大測試無差錯傳輸檔案 288m 最大測試傳輸速度 6.5m s 可能這裡並不需要這種型別的帖子,但希望各位能代小弟轉貼,因為網路上很難搜尋到這種可以解決丟包問題的 級實現方法,希望每乙個...
Linux下如何快速搜尋大檔案?
工作中經常使用linux進行部署應用服務,處理日誌檔案過大問題,最常見的是日誌檔案打滿伺服器影響伺服器效能,以往我們需要手動檢視可能的目錄同時清理過的大檔案,本篇文章就來介紹如何快速搜尋系統下大檔案的方法,提高工作效率 find 搜尋 目錄下所有檔案在1024k以上的檔案 find type f s...
linux下如何通過lseek定位大檔案
背景 有一張16gb sd卡,插入開發板sd卡插槽,通過二進位制方式向裡面寫入資料,在通過lseek 函式定位時返回 1,本意是通過lseek 獲取sd卡大小 如下 large sd.c include include include include include include int main...