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

Kurs WinApi - serwer nie działa poprawnie

Ostatnio zmodyfikowano 2014-06-29 17:27
Autor Wiadomość
Puszka
Temat założony przez niniejszego użytkownika
Kurs WinApi - serwer nie działa poprawnie
» 2014-06-15 21:23:54
Witam!
Zaczynam zabawę z WinApi. Aby nauczyć się "co jak działa" postanowiłem, że przekopiuję cały kod źródłowy z kursu » KursyKurs WinAPI, C++ kurs. i zobaczę czy jest ok. I tu się pojawia problem, ponieważ opis zachowania programu jest zupełnie inny niż u mnie - chodzi mi o moment, w którym serwer powinien wyświetlić komunikat : "Waiting for connection " u mnie nic się dzieje - dosłownie, gdy kliknę "enter" program kończy działanie. Proszę o pomoc i z góry dziękuje.

C/C++
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <winsock2.h>
#include <windows.h>


void KlientServer();

int main()
{
    WSAData wsaData;
   
    int result = WSAStartup( MAKEWORD( 2, 2 ), & wsaData );
    if( result != NO_ERROR )
    {
        printf( " Initialization error.\n" );
       
    }
   
    SOCKET mainSocket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
    if( mainSocket == INVALID_SOCKET )
    {
        printf( "Error creating socket: %ld\n", WSAGetLastError() );
        WSACleanup();
        return 1;
    }
   
    sockaddr_in service;
    memset( & service, 0, sizeof( service ) );
    service.sin_family = AF_INET;
    service.sin_addr.s_addr = inet_addr( "127.0.0.1" );
    service.sin_port = htons( 27015 );
   
    if( bind( mainSocket,( SOCKADDR * ) & service, sizeof( service ) ) == SOCKET_ERROR )
    {
        printf( "bind() failed.\n" );
        closesocket( mainSocket );
        return 1;
    }
   
    if( listen( mainSocket, 1 ) == SOCKET_ERROR )
         printf( "Error listening on socket.\n" );
   
   
   
    SOCKET acceptSocket = SOCKET_ERROR;
    printf( "Waiting for a client to connect...\n" );
   
    while( acceptSocket == SOCKET_ERROR )
    {
        acceptSocket = accept( mainSocket, NULL, NULL );
    }
   
    printf( "Client connected.\n" );
    mainSocket = acceptSocket;
   
   
   
   
   
   
   
   
   
   
   
   
    return 0;
}
P-112138
Moorfox
» 2014-06-20 12:29:41
Odpal przez konsolke
P-112369
Puszka
Temat założony przez niniejszego użytkownika
» 2014-06-29 17:15:55
Nic sie nie dzieje tka jakbym odpalił normalnie - żadnej różnicy
P-112922
pekfos
» 2014-06-29 17:27:10
C:\Users\admin\Desktop>g++ a.cpp -lWS2_32

C:\Users\admin\Desktop>a
Waiting for a client to connect...
Działa. Na pewno kompilujesz ten kod? Jakąś informację powinieneś mieć wypisaną w konsoli.
P-112925
« 1 »
  Strona 1 z 1