I believe everything is in working order. The only problem I have with my code is that the server-side isn't getting all the information sent to the file that it is creating from the client-side.

This is using Winsock, by the way. Anybody here maybe know what's wrong with the file transfer process?

Client:

Code:
int main(){
    WSADATA Winsock;
    SOCKET Socket,Sub;
    Addr addr;
    IncomingAddress incomingAddress;
    intAddressLen=sizeof(IncomingAddress);

    WSAStartup(MAKEWORD(2,2),&Winsock);

    if(LOBYTE(Winsock.wVersion)!=2|| HIBYTE(Winsock.wVersion)!=2){
        WSACleanup();
        return0;
    }

    Socket= socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

    ZeroMemory(&addr,sizeof(Addr));
    addr.sin_family = AF_INET;
    addr.sin_addr.s_addr = inet_addr("127.0.0.1");
    addr.sin_port = htons(6000);

    if(connect(Socket,(sockaddr*)&addr,sizeof(Addr))<0){
        printf("Connection Failed!\n");
        getchar();
        return0;
    }

        char*ClientIP= inet_ntoa(incomingAddress.sin_addr);
        intClientPort= ntohs(incomingAddress.sin_port);
        printf("Client connected!\n");
        printf("IP: %s:%d\n",ClientIP,ClientPort);

        printf("Sending file... \n");

        FILE*File;
        char*Buffer;
        unsignedlongSize;

        File= fopen("hey.txt","rb+");
        if(!File){
            printf("Error while reading the file!\n");
            getchar();
            return0;
        }

        fseek(File,0, SEEK_END);
        Size= ftell(File);
        fseek(File,0, SEEK_SET);

        Buffer= malloc(Size);

        fread(Buffer,Size,1,File);
        char cSize[MAX_PATH];
        sprintf(cSize,"%i",Size);

        fclose(File);
        send(Sub, cSize, MAX_PATH,0);// File size

        intOffset=0;
        while(Size>Offset){
            intAmount= send(Sub,Buffer+Offset,Size-Offset,0);

            if(Amount<=0){
                printf("Error: "+WSAGetLastError());
                break;
            }else{
                Offset+=Amount;
            }
        }
        free(Buffer);
        closesocket(Sub);
        closesocket(Socket);
        WSACleanup();
    return0;
}


Server:

Code:
int main(){
    WSADATA Winsock;
    SOCKET Socket,Sub;
    Addr addr;
    IncomingAddress incomingAddress;
    intAddressLen=sizeof(IncomingAddress);

    // Start up Winsock
    WSAStartup(MAKEWORD(2,2),&Winsock);

    if(LOBYTE(Winsock.wVersion)!=2|| HIBYTE(Winsock.wVersion)!=2){
        WSACleanup();
        return0;
    }

    Socket= socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

    // Memset alternative
    ZeroMemory(&addr,sizeof(Addr));
    addr.sin_family = AF_INET;
    addr.sin_port = htons(portNumber);
    bind(Socket,(sockaddr*)&addr,sizeof(Addr));

    if(listen(Socket,1)== SOCKET_ERROR){
        printf("Listening error!\n");
    }else{
        printf("Listening...\n");
    }

    if(Sub= accept(Socket,(sockaddr*)&incomingAddress,&AddressLen)){
        intSize;
    char*Filesize= malloc(1024);

    if(recv(Socket,Filesize,1024,0)){// File Size
        Size= atoi((constchar*)Filesize);
        printf("File size: %d\n",Size);
    }

    char*Buffer= malloc(Size);

    intOffset=0;
    while(Size>Offset){



        intAmount= recv(Socket,Buffer+Offset,Size-Offset,0);

        if(Amount<=0){
            printf("Error: "+WSAGetLastError());
        }else{
            Offset+=Amount;
        }
    }

    FILE*File;
    File= fopen("test.txt","wb+");
    fwrite(Buffer,1,Size,File);
    fclose(File);

    getchar();
    closesocket(Socket);
    WSACleanup();

    }
}
return0;
}