Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при коннекте, использование класса CAsyncSocket 
:(
    Опции темы
REDiez
Дата 15.3.2007, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 16.9.2005

Репутация: нет
Всего: нет



Добрый день.

Есть сервер и есть клиент.
Используется класс CAsyncSocket.
Все запускается на одной машине.

Запускаем сервер, затем клиент.
Проблема в том, что не происходит коннекта клиента к серверу.

Вот текст сервера:

Код

#include <iostream>
#include <afxsock.h>

using namespace std;

class ServerSocket : public CAsyncSocket
{
    protected:
        CAsyncSocket client_socket;

    public:    
        void OnReceive(int nErrorCode)
        {
            char pBuf[1024];
            int size=client_socket.Receive(pBuf, 1024);
            cout<<pBuf;            
            
        }


        void OnAccept(int nErrorCode) 
        {
            cout<<"There is a connection with client";
            Accept(client_socket); 

        }
};

int main()
{

    ServerSocket SocketK;        // сокет-сервер
    AfxSocketInit();
    
    if (SocketK.Create(4000)) cout<<"Server socket is created\n"; 
       else cout<<"Error create socket server";

    if (SocketK.Listen()) cout<<"All is OK. Socket is listening \n"; else cout<<"Error"<<endl;
    while (1)
    {        
        if (!SocketK.Listen()) cout<<"Error"<<endl;
    }
    
    SocketK.Close();
    
    return 0;
}


Вот текст клиента:

Код


#include <iostream>
#include <afxsock.h>

class ClientSocket : public CAsyncSocket
{
    // здесь пока пусто    
};

int main()
{


    ClientSocket SocketK;        // сокет-сервер
    AfxSocketInit();
    
    if (SocketK.Create()) cout<<"Client socket is created\n"; 
       else cout<<"Error create client server\n";
            
    int nErr;    
       if (SocketK.Connect("127.0.0.1",4000)) cout<<"Client is connected "; 
        else
        {
            nErr=GetLastError();
                                               cout<<nErr;
            cout<<"Connect Error";            
        }

    while(1) 
    {
        SocketK.Send("Message",7);
    }
        
    SocketK.Close();

    return 0;
}


Сокет клиента создается, но при коннекте выскакивает ошибка 10035. Что означает данная ошибка я разобрал, но не понятно как это исправить в данной программе.

После запуска сервера на консоли видим:
           ServerSocket is created.
           All is OK. Server is listening

После запуска клиента на консоли видим:
           ClientSocket is created.
           Connect Error.


Заранее благодарю за ответы.
Спасибо.
PM MAIL   Вверх
ptr
Дата 16.3.2007, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: 9
Всего: 14



Код

if (!SocketK.Listen()) cout<<"Error"<<endl;

Тут должен быть Accept.


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
REDiez
Дата 19.3.2007, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 16.9.2005

Репутация: нет
Всего: нет



Введение этой строчки не спасаетsmile
Ошибка то при коннекте клиента.) 
PM MAIL   Вверх
drZmeu
Дата 20.3.2007, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 22.11.2006

Репутация: 1
Всего: 1



А ты попробуй авось поможет  smile 
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
REDiez
Дата 20.3.2007, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 16.9.2005

Репутация: нет
Всего: нет



Пробывал уже до этого) не помогаетsmile
PM MAIL   Вверх
ptr
Дата 21.3.2007, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: 9
Всего: 14



Всё нормально, для асинхронных сокетов так и должно быть.

Цитата(REDiez @  15.3.2007,  17:11 Найти цитируемый пост)
Что означает данная ошибка я разобрал, но не понятно как это исправить в данной программе.

Возникает вопрос: Зачем использовать асинхронные сокеты, если ты не знаешь как с ними работать?


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
REDiez
Дата 22.3.2007, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 16.9.2005

Репутация: нет
Всего: нет



Согласен не знаю, но этого требует проект.
Вот и хотелось бы получить здесь ответ на вопрос.

Цитата

Всё нормально, для асинхронных сокетов так и должно быть
 

Тогда как сделать так, чтобы коннект был, используя асинхронные сокеты?smile

PM MAIL   Вверх
ptr
Дата 24.3.2007, 06:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: 9
Всего: 14



А ты MSDN по CAsyncSocket.connect читал?


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0801 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.