该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
发送端代码:
case '1': /*好友同意接受*/
/*send file*/
memset(&Sendfile_message,'\0',sizeof(Sendfile_message));
Sendfile_message.guest_id=htonl(guest_ID);
Sendfile_message.peerid=Friend_msg.guest_id;
Sendfile_message.flag='c';
Sendfile_message.extra_infor[0]='0';
//while((nread=read(fd_pro.file_descriptor,Sendfile_message.message,100))>0)
while((nread=fread(Sendfile_message.message,sizeof(char),buffs,fp))>0)
{
//system("clear");
printf("%d\n",nread);
/*发送文件的内容*/
printf("%s\n",Sendfile_message.message);
nwrite=write(client_sockfd,&Sendfile_message,sizeof(Sendfile_message));
printf("%lf,%d",ntotal,(int)File_attr.file_state.st_size);
if(nwrite<=0)
{
perror("write error");
break;
}
ntotal+=nread;
snprintf(hints,sizeof(hints),"%4f",100*(ntotal/(int)File_attr.file_state.st_size));
gtk_progress_bar_set_text (GTK_PROGRESS_BAR(fd_pro.progressbar),hints);
gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR(fd_pro.progressbar),ntotal/(int)File_attr.file_state.st_size);
gtk_widget_show_all(fd_pro.window);
memset(Sendfile_message.message,'\0',sizeof(Sendfile_message.message));
}
memset(Sendfile_message.message,'\0',buffs);
strcpy(Sendfile_message.message,"end"); /*sending end*/
nwrite=write(client_sockfd,&Sendfile_message,sizeof(Sendfile_message));
if(nwrite<=0)
{
perror("write error");
}
//close(fd_pro.file_descriptor); /*关闭文件描述符*/
fclose(fp);
gtk_widget_destroy(fd_pro.progressbar); /*删除发送文件的进度条*/
gtk_widget_destroy(fd_pro.window); /*关闭发送文件的窗口*/