Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[winsock2] serwer

Ostatnio zmodyfikowano 2012-03-30 12:33
Autor Wiadomość
hincu
Temat założony przez niniejszego użytkownika
[winsock2] serwer
» 2012-03-30 12:33:33
napisalem klient/serwer w winsock do mojej gry klient laczy sie pieknie ( sprawdzalem w sfml network o dziwo dzialalo ) no dobra ale przy pisaniu serwera juz nie jest tak wesolo mianowicie problem polega przy nasluchiwaniu serwera na polaczenia
nie mam zielonego pojecia co jest nie tak : P jakies sugestie?
o to kod calego jak na razie serwera
C/C++
#include "Server.h"

void Server::InitConnect()
{
    int err;
    err = WSAStartup( MAKEWORD( 2, 2 ), & wsadata );
    if( err != 0 )
    {
        std::cout << "Blad przy inicjalizacji winsock" << std::endl;
        IsInitialized = false;
    }
    else
    {
        ServerListener = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
        if( ServerListener == INVALID_SOCKET )
        {
            std::cout << "Blad przy tworzeniu gniazda" << std::endl;
            IsInitialized = false;
            WSACleanup();
        }
        else { std::cout << "Gniazdo utworzono pomyslnie" << std::endl; }
       
        SOCKADDR_IN serverInf;
        serverInf.sin_family = AF_INET;
        serverInf.sin_addr.s_addr = INADDR_ANY;
        serverInf.sin_port = htons( Port );
       
        if( bind( ServerListener,( SOCKADDR * )( & serverInf ), sizeof( serverInf ) ) == SOCKET_ERROR )
        {
            std::cout << "Nie moge zbindowac gniazda" << std::endl;
            IsInitialized = false;
            WSACleanup();
        }
        else
        {
            std::cout << "Inicjalizacja winsock udana" << std::endl;
            IsInitialized = true;
        }
    }
   
}

void Server::Listen()
{
    SOCKET TempSock = SOCKET_ERROR;
    std::cout << "Szukam polaczen..." << std::endl;
    while( TempSock == SOCKET_ERROR )
    {
        TempSock = accept( ServerListener, NULL, NULL );
        IsConnected = false;
    }
   
    Client = TempSock;
    std::cout << "Polaczono z klientem " << std::endl;
    IsConnected = true;
   
}

void Server::SendPing()
{
    if( PingTimer.GetElapsedTime() >= 10.f )
    {
        std::string ping;
        ping = "PING";
        send( Client, ping.c_str(), 4, 0 );
        std::cout << "Wysylam Ping\n";
       
    }
}


#edit problem rozwiazany : P zapomnialem o listen()
P-53488
« 1 »
  Strona 1 z 1