23,125
社区成员
发帖
与我相关
我的任务
分享
fseek(fp,0,SEEK_END);
file_len = ftell(fp);
fseek(fp,0,SEEK_SET);
tcp_num = file_len/BUFFMAX;
printf("tcpnum=%d\n",tcp_num);
if((tcp_num*BUFFMAX)<file_len)
{
tcp_num+=1;
}
int i,write_len;
for(i=0;i<tcp_num;i++)
{
if(file_len - i*BUFFMAX >= BUFFMAX)
{
file_send_len = BUFFMAX;
}
else
{
file_send_len = file_len - i*BUFFMAX;
}
bzero(buff,BUFFMAX);
write_len = fread(buff,sizeof(unsigned char),file_send_len,fp);
len = send(sockfd,buff,file_send_len,0);
if(len<0)
{
perror("failed to send");
break;
}
}
fclose(fp);
bzero(buff,BUFFMAX);
printf("==================传输第二张================\n");
if(!(fp=fopen("2.jpg","rb+")))
{
return -1;
}
fseek(fp,0,SEEK_END);
file_len = ftell(fp);
fseek(fp,0,SEEK_SET);
tcp_num = file_len/BUFFMAX;
printf("tcpnum=%d\n",tcp_num);
if((tcp_num*BUFFMAX)<file_len)
{
tcp_num+=1;
}
for(i=0;i<tcp_num;i++)
{
if(file_len - i*BUFFMAX >= BUFFMAX)
{
file_send_len = BUFFMAX;
}
else
{
file_send_len = file_len - i*BUFFMAX;
}
bzero(buff,BUFFMAX);
write_len = fread(buff,sizeof(unsigned char),file_send_len,fp);
len = send(sockfd,buff,file_send_len,0);
if(len<0)
{
perror("failed to send");
break;
}
}
fclose(fp);
FILE *fp;
if((fp = fopen("1.jpg","wb"))==NULL)
{
printf("file open err\n");
return -1;
}
while((data_len = recv(new_sockfd,buff,BUFFMAX,0))>0)
{
int write_len = fwrite(buff,sizeof(char),data_len,fp);
printf("write_len = %d\n",write_len);
}
fclose(fp);
if((fp = fopen("2.jpg","wb"))==NULL)
{
printf("file open err\n");
return -1;
}
while((data_len = recv(new_sockfd,buff,BUFFMAX,0))>0)
{
int write_len = fwrite(buff,sizeof(char),data_len,fp);
printf("write_len = %d\n",write_len);
}
fclose(fp);
return 0;
datalen = 0;
while(datalen < filesize)
{
int recv_len= recv(new_sockfd,buff,BUFFMAX,0);
datalen += recv_len;
fwrite(buff,sizeof(char),recv_len,fp);
}
//写成类似这种,我随便写得代码,可能有BUG