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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Простой клиент-серв 
:(
    Опции темы
WolfON
Дата 20.3.2005, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Кароче, как сделать прогу - простой клиент-серв, типа чтобы отправлять друг-другу сообщения текстовые, как на дельфе Server- Client- Socket
smile smile smile
PM MAIL ICQ   Вверх
Ni@m
Дата 21.3.2005, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Юзай готовый класс Socket!
--------------------
Обучение - как переливание воды из одной чашки в другую: всегда лучше, чтоб чашка со знаниями нахордилась выше.
PM MAIL WWW ICQ   Вверх
WolfON
Дата 21.3.2005, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я не зря поставил 3 смайла - хочу пример.

Нужен пример реализации такого клиент-сервера, компилятор.
PM MAIL ICQ   Вверх
jorkug
Дата 22.3.2005, 07:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Microsoft Visual C++:
Код

DWORD WINAPI ClientThread(LPVOID lpParam)
{
    SOCKET        sock=(SOCKET)lpParam;
    char          szRecvBuff[1024],
                  szSendBuff[1024];
    int           ret;

    while(1)
    {
        ret = recv(sock, szRecvBuff, 1024, 0);
        if (ret == 0)
            break;
        else if (ret == SOCKET_ERROR)
        {
            MessageBox(0, "Recive data filed", "Error", 0);
            break;
        }
        szRecvBuff[ret] = '\0';

        strcpy(szSendBuff, "Command get OK");

        ret = send(sock, szSendBuff, sizeof(szSendBuff), 0);
        if (ret == SOCKET_ERROR)
        {
           break;
        }
    }
    return 0;
}

DWORD WINAPI NetThread(LPVOID lpParam)
{
    SOCKET        sServerListen;
    SOCKET        sClient;
    struct sockaddr_in localaddr;
    struct sockaddr_in clientaddr;
    HANDLE        hThread;
    DWORD         dwThreadId;
    int           iSize;

    sServerListen = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
    if (sServerListen == SOCKET_ERROR)
    {
        MessageBox(0, "Can't load WinSock", "Error", 0);
        return 0;
    }
    localaddr.sin_addr.s_addr = htonl(INADDR_ANY);
    localaddr.sin_family = AF_INET;
    localaddr.sin_port = htons(5050);

    if (bind(sServerListen, (struct sockaddr *)&localaddr, 
            sizeof(localaddr)) == SOCKET_ERROR)
    {
        MessageBox(0, "Can't bind", "Error", 0);
        return 1;
    }
    
    MessageBox(0, "Bind OK", "Error", 0);

    listen(sServerListen, 4);

    MessageBox(0, "Listen OK", "Error", 0);
    while (1)
    {
        iSize = sizeof(clientaddr);
        sClient = accept(sServerListen, (struct sockaddr *)&clientaddr,
                        &iSize);        
        if (sClient == INVALID_SOCKET)
        {        
            MessageBox(0, "Accept filed", "Error", 0);
            break;
        }

        hThread = CreateThread(NULL, 0, ClientThread, 
                    (LPVOID)sClient, 0, &dwThreadId);
        if (hThread == NULL)
        {
            MessageBox(0, "Create thread filed", "Error", 0);
            break;
        }
        CloseHandle(hThread);
    }
    closesocket(sServerListen);
    return 0;
}

PM MAIL   Вверх
Гость_Bodrox
Дата 2.4.2005, 12:33 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вот что сказал...
Код

--------------------Configuration: Serv - Win32 Debug--------------------
Compiling...
Serv.cpp
Linking...
Serv.obj : error LNK2001: unresolved external symbol _send@16
Serv.obj : error LNK2001: unresolved external symbol _recv@16
Serv.obj : error LNK2001: unresolved external symbol _closesocket@4
Serv.obj : error LNK2001: unresolved external symbol _accept@12
Serv.obj : error LNK2001: unresolved external symbol _listen@8
Serv.obj : error LNK2001: unresolved external symbol _bind@12
Serv.obj : error LNK2001: unresolved external symbol _htons@4
Serv.obj : error LNK2001: unresolved external symbol _htonl@4
Serv.obj : error LNK2001: unresolved external symbol _socket@12
Debug/Serv.exe : fatal error LNK1120: 9 unresolved externals
Error executing link.exe.

Serv.exe - 10 error(s), 0 warning(s)

  Вверх
Ni@m
Дата 2.4.2005, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А ты либы подключил при компиляции?
--------------------
Обучение - как переливание воды из одной чашки в другую: всегда лучше, чтоб чашка со знаниями нахордилась выше.
PM MAIL WWW ICQ   Вверх
jorkug
Дата 4.4.2005, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Сокеты и все с ними связанное лежит в Ws2_32.lib.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




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


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

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