Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Сети > Получение информации


Автор: Dray 4.9.2006, 18:08
У меня 2 сокета. Мне нужно сделать так: Если приходит информация на 1й, то 2й ее отсылает. Если на 2й, то 1й ее отсылает. Вот мой код:
Код
int dms_net::CClientThread::Run ()
{
    unsigned long ulMode = 1;
    ioctlsocket (m_ServerSock, FIONBIO, &ulMode);
    ulMode = 1;
    ioctlsocket (m_ClientSock, FIONBIO, &ulMode);
    char Buff [1024];
    fd_set ReadSet;
    while (!IsMustStop ())
    {
        FD_ZERO (&ReadSet);
        FD_SET (m_ServerSock, &ReadSet);
        FD_SET (m_ClientSock, &ReadSet);

        int ReadySock = select (0, &ReadSet, NULL, NULL, NULL);
        if (FD_ISSET(m_ServerSock, &ReadSet))
        {
            int ret = recv (m_ServerSock, Buff, 1024, 0);
            if (ret == 0)break;
            else if (ret == SOCKET_ERROR)
            {
                //Обработать ошибку
                break;
            }
            Buff[ret] = '\0';

            std::cout << Buff << std::endl;

            if (send (m_ClientSock, Buff, ret, 0)==SOCKET_ERROR)
            {
                //Обработать ошибку
                break;
            }
        }

        if (FD_ISSET(m_ClientSock, &ReadSet))
        {
            int ret = recv (m_ClientSock, Buff, 1024, 0);
            if (ret == 0)break;
            else if (ret == SOCKET_ERROR)
            {
                //Обработать ошибку
                break;
            }
            Buff[ret] = '\0';

            std::cout << Buff << std::endl;

            if (send (m_ServerSock, Buff, ret, 0)==SOCKET_ERROR)
            {
                //Обработать ошибку
                break;
            }
        }
    }
    return 0;
}

Я правильно делаю?

Автор: Artemon 6.9.2006, 16:28
Бери пример из MSDN

Автор: sOckets 6.9.2006, 18:27
Напиши 2 фунцкии для отправки (для обоих сокетов) и проверяй и отправляй...в чём проблема ? =\

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)