高手帮帮忙,小弟我做了一个Tcp/ip文件传输程序,开了十个线程。传输小文件可以正确传输,大文件就出错

高手帮帮忙,我做了一个Tcp/ip文件传输程序,开了十个线程。传输小文件可以正确传输,大文件就出错
,我做了一个Tcp/ip文件传输程序,开了十个线程。传输小文件可以正确传输,大文件服务器就出错。是不是传输大文件还要加上什么东西
server端
while(i <10)
                  {              
                  sockSrvr.Accept(pSockConnection[i]);
AfxBeginThread(SendThread,&param[i]);
i++;
}
UINT   SendThread(LPVOID   pParam)
{
FILEINFO   fileinfo;
Param   *pFileInfo=(Param*)pParam;
int   fileLen=pFileInfo-> filelen;
CSocket   *pSockconnection=pFileInfo-> pSockcon;
int   seek=pFileInfo-> seek;
int   totalLen=pFileInfo-> totalLen;
int   cbLeftToSend=pFileInfo-> filelen,readLen   =   0;
fileLen=htonl(fileLen);
fileinfo.fileLen=fileLen;
fileinfo.seek=htonl(seek);
fileinfo.totalLen=htonl(totalLen);
pSockconnection-> Send(&fileinfo,sizeof(FILEINFO));

TRACE( "Thread   :   %d-The   File   Seek   :%d-File   Length   :%d\r\n ",hThread++,   seek,   pFileInfo-> filelen);

sendFile.Seek(seek,CFile::begin);

BYTE   buffer[4096];
int   SendSucc=0;
int   count=0;//test
while   (TRUE)
{
 

if   (cbLeftToSend   > =   4096)
{
readLen   =   sendFile.Read(buffer,4096);
SendSucc=pSockconnection-> Send(buffer,readLen);
cbLeftToSend   -=readLen;
}
else
{
readLen   =   sendFile.Read(buffer,cbLeftToSend);
SendSucc=pSockconnection-> Send(buffer,readLen);

break;
}



if   (   SendSucc   ==   SOCKET_ERROR   )
break;


}

return   0;
}

------解决方案--------------------
你不做任何的检查,而且没有校验啊,不要把网络想得那么理想化
------解决方案--------------------
socket发送 是有数据大小限制的。默认大小我记不清楚了。

你需要设置一下。需要把大文件分割成很多数据包然后发送。