Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2010, 18:32   #1
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию Клиент-Сервер

Уважаемые господа, нужна ваша помощь. Задача такова: написать клиент и сервер с возможностью передавать файлы на сервер.

Клиент:
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <conio.h>
#include <winsock.h>



int main(){
WSADATA wsaData;
WORD version;
int error;
cout<<"this is client"<<endl;
version = MAKEWORD( 2, 0 );

error = WSAStartup( version, &wsaData );

/* check for error */
if ( error != 0 )
{ cout<<"error occured"<<endl;

return FALSE;
}

/* check for correct version */
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 0 )
{ cout<<"incorrect WinSock version"<<endl;

WSACleanup();
return FALSE;
}

SOCKET client;
cout<<"socet formiration"<<endl;
client = socket( AF_INET, SOCK_STREAM, 0 );

struct sockaddr_in sin;

memset( &sin, 0, sizeof(sin) );

sin.sin_family = AF_INET;
sin.sin_addr.s_addr = htonl(INADDR_ANY);
sin.sin_port = htons(7007);
cout<<"OK"<<endl;


if ( connect( client, (struct sockaddr *)&sin, sizeof sin ) == SOCKET_ERROR )
{ cout<<"could not connect to server"<<endl;

getchar();
return FALSE;
}



ifstream ifile("text.txt", ios::binary);
cout<<"read beginning"<<endl;

if (!ifile){
cout<<"couldnt open file"<<endl;
return 1;}

char a[sizeof(ifile)];
ifile.read(a, sizeof(ifile));

ifile.close();
send(client,a,sizeof(ifile),0);


closesocket(client);

WSACleanup();
return 0;
}


Сервер:
#include <windows.h>
#include <iostream>
#include <winsock.h>
#include <stdlib.h>
#include <fstream.h>
#include <conio.h>
int main()
{
WSADATA wsaData;
WORD version;
int error;

version = MAKEWORD( 2, 0 );

error = WSAStartup( version, &wsaData );
cout<<"this is server"<<endl;
/* check for error */
if ( error != 0 )
{
/* error occured */
return FALSE;
}

/* check for correct version */
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 0 )
{
/* incorrect WinSock version */
WSACleanup();
return FALSE;
}


SOCKET server;

server = socket( AF_INET, SOCK_STREAM, 0 );
/*Server: Starting Server*/
cout<<"start server"<<endl;

struct sockaddr_in sin;

memset( &sin, 0, sizeof sin );

sin.sin_family = AF_INET;
sin.sin_addr.s_addr = htonl(INADDR_ANY);
sin.sin_port = htons(7007);

if ( bind( server, (struct sockaddr *)&sin, sizeof sin ) == SOCKET_ERROR )
{
/* could not start server */
return FALSE;
}
/*Server: Listen for Client*/


if (SOCKET_ERROR == listen( server, SOMAXCONN )){
std::cerr << "listen"<<endl;
return 1;
}
//Server: Accepting Connection


SOCKET worker;
int length;

length = sizeof(sin);

while(1){
worker = accept( server, (struct sockaddr *)&sin, &length );
std::cerr << "accepted\n";
//Client: Create Socket

char *buf;

buf=(char *)malloc(256);
ofstream ofile("text_1.txt", ios::binary);
ofile.write(buf,sizeof(buf));
ofile.close();


int recvd = recv(worker, buf, sizeof(buf), 0);
if (recvd < 0){
cout<<"error recv"<<endl;
return 1;
}

std::cout << "Received: " << "\n";
closesocket(worker);


}

closesocket( server );
WSACleanup();
return 0;
}

При запуске клиент пишет, что не может подключиться к серверу. В чем ошибка?
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
клиент сервер balamut Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 01.11.2009 04:43
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? Demol Работа с сетью в Delphi 1 21.04.2009 16:18
Клиент-сервер-клиент Кронос Работа с сетью в Delphi 3 24.08.2007 07:57
Клиент-сервер Scorpio Работа с сетью в Delphi 6 13.02.2007 22:57