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


Автор: Nuzur 26.6.2006, 10:36

Я волшебное слово знаю - " Ну очень нуна" 

Автор: bel_nikita 26.6.2006, 10:47
http://www.pcmag.ru/?ID=35963

Добавлено @ 10:51 
http://www.builder.cz/art/cpp/tcp_server_windows.html, но на чешском smile  

Автор: Nuzur 26.6.2006, 11:13
А можно без MFC но на русском или английском smile 

Автор: bel_nikita 26.6.2006, 11:24
чего нет, того нет. да и чего там чешского бояться? код приведен рабочий, за исключением очепатки. малость повозиться и все поймешь smile  

Автор: Nuzur 26.6.2006, 11:46
А код клиента? 
Да я так и насилал собственно, точнее похоже, а именнно вот так вот, тока за ошибками я там не очень слежу, ну да ничего подправи

Код

    //need for define socket type    
    CString strHostName;

    SOCKET MainSocket;
    WSADATA WSAData;

    HOSTENT* hostENT;

    SOCKADDR_IN Sock_addr_in;
    //IN_ADDR in_addr;


    WSAStartup(MAKEWORD(LowByteSockVersion, HighByteSockVersion), &WSAData);
    MainSocket = socket( AF_INET, SOCK_RAW, IPPROTO_IP );
    gethostname(strHostName.GetBuffer(0), sizeof(strHostName));
    hostENT = gethostbyname( strHostName );

    ZeroMemory( &Sock_addr_in, sizeof(Sock_addr_in));

    //floodfill
    Sock_addr_in.sin_port = htons( atoi( CString( bstrPort ) ) );
    Sock_addr_in.sin_family = AF_INET;
    Sock_addr_in.sin_addr.s_addr = ((struct in_addr *)hostENT->h_addr_list[0])->s_addr;

    //Bind our great connect port
    bind(MainSocket, (SOCKADDR *)&Sock_addr_in, sizeof(SOCKADDR));

    SOCKADDR Sock_addr;
    SOCKET Socket_accept;

    int j = 0;

    while(j < atoi(MaxConnectedNodes))
    {
            
        DWORD TreadId;
        listen(Socket_accept , atoi(MaxConnectedNodes));

        int i = sizeof( Sock_addr );
        Socket_accept = accept(MainSocket, &Sock_addr, &i);

        CreateThread(NULL, 0, SocketThread, (PVOID)Socket_accept, 0, &TreadId);

        j++;
    }

    closesocket( MainSocket );
    WSACleanup();
    return S_OK;


А вот видно с кодом клиента у меня запара, может и на него ссылку дадите  smile  

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