请大家帮小弟我看一个socket传文件丢失信息的有关问题

请大家帮我看一个socket传文件丢失信息的问题。
初学socket,很多地方都不懂。
昨天写了个程序,传文件的时候发送接收都在本机没有问题,放在局域网传,文件就
接收的不完整了,怎么想不通,希望大家能给点指点!!
代码如下
发送端:
#include   <Winsock2.h>
#include   <stdio.h>
//连接一个库文件project-> setting-> link:object/library   modules添加:ws2_32.lib
void   main()
{
WORD   wVersionRequested;//版本号
WSADATA   wsaData;
int   err;
 
wVersionRequested   =   MAKEWORD(   1,   1   );//1.1版本的套接字
 
err   =   WSAStartup(   wVersionRequested,   &wsaData   );
if   (   err   !=   0   )   {
return;
}//加载套接字库,加裁失败则返回
 

if   (   LOBYTE(   wsaData.wVersion   )   !=   1   ||   HIBYTE(   wsaData.wVersion   )   !=   1   )   {
    WSACleanup(   );
    return;  
}//如果不是1.1的则退出



SOCKET   sockServer   =   socket(AF_INET,SOCK_STREAM,0);    
SOCKADDR_IN   addrServer;
addrServer.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrServer.sin_family=AF_INET;
addrServer.sin_port=htons(6000);

bind(sockServer,(SOCKADDR   *)&addrServer,sizeof(SOCKADDR));//绑定

listen(sockServer,5);//监听

SOCKADDR_IN   sockClient;
int   IClientSockLen=sizeof(SOCKADDR);

while(1){
SOCKET   sockConn;
sockConn=accept(sockServer,(SOCKADDR   *)&sockClient,&IClientSockLen);



FILE   *fp;
if((fp=fopen( "111.exe ", "rb "))==NULL)//打开111.exe这个文件
{

printf( "FILE   ERROR! ");
getchar();
return;
}

// send(sockConn,filename,strlen(filename),0);

printf( "初始化……\n ");
/* int   Cmdtmp;
char   Cmd=0;
Cmdtmp=send(sockConn,&Cmd,1,0);
while(Cmdtmp <1)
Cmdtmp=send(sockConn,&Cmd,1,0);
*/
getchar();
printf( "正在发送…… ");

char   temp[1024];

while(!feof(fp)){
memset(temp,0,1024);
fread(temp,1024,1,fp);//读文件
int   y   =   send(sockConn,temp,1024,0);
while(y <1024)
{
printf( "发送%d字节,不符合要求,重新发送\n ",y);
y=send(sockConn,temp,1024,0); //传送文件
}
}//while(feof)

fclose(fp);
closesocket(sockConn);

printf( "\n发送成功\n ");

              }//while
}//main


接收端:
#include   <Winsock2.h>
#include   <stdio.h>
//连接一个库文件project-> setting-> link:object/library   modules添加:ws2_32.lib
void   main()
{
WORD   wVersionRequested;//版本号
WSADATA   wsaData;
int   err;
 
wVersionRequested   =   MAKEWORD(   1,   1   );//1.1版本的套接字
 
err   =   WSAStartup(   wVersionRequested,   &wsaData   );
if   (   err   !=   0   )   {
return;
}//加载套接字库,加裁失败则返回
 

if   (   LOBYTE(   wsaData.wVersion   )   !=   1   ||   HIBYTE(   wsaData.wVersion   )   !=   1   )   {
    WSACleanup(   );
    return;  
}//如果不是1.1的则退出

SOCKET   sockClient   =   socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN   addrClient;