如何做linux下udp大檔案傳輸

2021-04-13 09:31:09 字數 1902 閱讀 2130

伺服器端:

客戶端:

#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...