回 帖 发 新 帖 刷新版面

主题:请问一个TCP数据包有多大啊

要编一个大文件传输程序,传一个100M的文件,不知道该怎么弄

所以想问高人,每个TCP数据包能传多大的数据?是不是应该把100M的这个大文件分N次传输?

谢谢了!!!

回复列表 (共6个回复)

沙发

现在的tcp/ip第四版上的最大的字节是65535(包括报头)字节,我想现在的tcp/ip第六版应该没有这方面的改动,要弄的更清楚只有自己查看一下.

板凳

大哥,你管它多大,那有不用你管

而且一般都用ftp协议传文件
如果只是一个文件怎么传都行。只要建立一个TCP连接就足够了

3 楼

答非所问

4 楼

int my_send(int fd,void *buffer)
{
   int size=strlen(buffer);
   int bytesend;
   int totalsend=0;
   char *ptr; 
   ptr=buffer;
   do
   {
       bytessend=send(fd,ptr,size-totalsend,0);
       if(bytessend==-1)
             break;
      totalsend+=bytessend;
      ptr+=totalsend;
    }while(totalsend<size);

   return 0;
}

5 楼

万分感谢!
 
不过有一点不理解,
是不是把一个FILE * 赋值给void *buffer就可以了,需不需要调用fread先把数据写
进buffer再my_send出去?

thank you!!

6 楼

先把数据写进buffer

我来回复

您尚未登录,请登录后再回复。点此登录或注册