Добавил:
korayakov
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <iostream.h>
#include "Client1.h"
#include"Winsock2.h"
#include"sys/types.h"
#pragma comment (lib,"ws2_32.lib")
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
int main()
{
SOCKET s;
struct sockaddr_in tcpaddr;
int rc;
u_short BufferLength;
CFile File;
CString sWorkDir;
CString sFileName;
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2),&wsaData);
tcpaddr.sin_family = AF_INET;
tcpaddr.sin_port = htons(5150);
tcpaddr.sin_addr.s_addr = inet_addr("127.0.0.1");
s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(s == INVALID_SOCKET) return 1;
rc = connect(s,(struct sockaddr *)&tcpaddr,sizeof(tcpaddr));
if(rc != 0) return 1;
cout<<"Enter work directory:";
cin>>sWorkDir.GetBuffer(1024);
while (SetCurrentDirectory((LPCTSTR)sWorkDir) == 0)
{
cout<<"Invalid directory"<<endl;
return -1;
}
cout<<"Enter file name:";
cin>>sFileName.GetBuffer(1024);
if(!File.Open((LPCTSTR)sFileName,CFile::modeRead) )
{
cout<< "File could not be opened " << "\n";
}
else cout<<"File open"<<endl;
DWORD dwRead = 1;
BYTE Buffer[4096];
do
{
dwRead = File.Read(Buffer, 4096);
BufferLength = htons((u_short)dwRead);
rc = send(s,(char*)&BufferLength,sizeof(u_short),0);
rc = send(s,(char*)&Buffer,dwRead,0);
}
while(dwRead != 0);
File.Close();
int end = 0;
BufferLength = htons((u_short)end);
rc = send(s,(char*)&BufferLength,sizeof(u_short),0);
closesocket(s);
WSACleanup();
return 0;
}