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

C++ winsock

Ostatnio zmodyfikowano 2010-03-15 23:08
Autor Wiadomość
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2010-03-15 22:27:02
Teraz po tym
C/C++
cout << "WSA_GLE: " << WSAGetLastError() << endl; // <== dodaj to...
// mamy błąd, WSA nie chce sie zainicjować
w konsoli wyswietla sie WS_gle: 0
no a potem blad...
P-15097
malan
» 2010-03-15 22:31:34
C/C++
<< tu by ł b ł ę dny kod >>
A teraz ?
P-15098
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2010-03-15 22:44:56
Teraz niechce sie skompilowac daje kod
21 C:\Documents and Settings\ADMIN\Pulpit\Winsock\serwer\main.cpp non-lvalue in assignment
Kod:
C/C++
#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include <iostream>
using namespace std;
int main( int argc, char ** argv )
{
    WSADATA wsaData;
    WORD wersja;
    int blad;
    int rozmiar;
    char bufor[ 500 ];
    SOCKET soc_serwer, soc_klient;
    sockaddr_in nowa_Nazwa;
    wersja = MAKEWORD( 2, 2 );
    blad = WSAStartup( wersja, & wsaData );
   
    cout << "Sprawdzanie protokołów..." << endl;
   
    if( !WSAStartup( wersja, & wsaData ) && blad = WSAGetLastError() ) // tworzymy WSA
    {
        cout << "WSA_GLE: " << blad << endl;
        // mamy błąd, WSA nie chce sie zainicjować
        cout << "Błąd inicjalizacji WSA" << endl;
        WSACleanup(); // usuwamy WSA
    }
   
    if( LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 2 ) {
        printf( "błąd zła wersja winsock" );
        WSACleanup();
        return 0;
    }
    soc_serwer = socket( AF_INET, SOCK_STREAM, 0 );
   
    memset( & nowa_Nazwa, 0, sizeof( nowa_Nazwa ) );
    nowa_Nazwa.sin_family = AF_INET;
    nowa_Nazwa.sin_addr.s_addr = INADDR_ANY;
    nowa_Nazwa.sin_port = htons( 12345 );
   
    if( bind( soc_serwer,( struct sockaddr * ) & nowa_Nazwa, sizeof( nowa_Nazwa ) ) == SOCKET_ERROR ) {
        printf( "bind - błąd" );
        WSACleanup();
        return 0;
    }
   
    if( listen( soc_serwer, SOMAXCONN ) == SOCKET_ERROR ) {
        printf( "listen - błąd" );
        WSACleanup();
        return 0;
    }
    rozmiar = sizeof( nowa_Nazwa );
    soc_klient = accept( soc_serwer,( struct sockaddr * ) & nowa_Nazwa, & rozmiar );
   
    send( soc_klient, bufor, sizeof( bufor ), 0 );
    blad = recv( soc_klient, bufor, sizeof( bufor ), 0 );
    if( blad == SOCKET_ERROR ) {
        printf( "revc - błąd" );
        WSACleanup();
        return 0;
    } else
         printf( "otrzymałem wiadomość --- %s", bufor );
   
    closesocket( soc_serwer );
    closesocket( soc_klient );
    WSACleanup();
   
    system( "PAUSE" );
    return EXIT_SUCCESS;;
}

P-15099
malan
» 2010-03-15 22:58:25
Oj chłopie... ;p

If successful, the WSAStartup function returns zero..
Jeżeli funkcja wykona się poprawnie to zwraca zero.

if( !WSAStartup( wersja, & wsaData ) )
inaczej...:
if( !( WSAStartup( wersja, & wsaData ) != 0 ) )
jeszcze inaczej...:
if( WSAStartup( wersja, & wsaData ) == 0 )
...
Popraw to na:
if( WSAStartup( wersja, & wsaData ) )
P-15100
Bartaz
Temat założony przez niniejszego użytkownika
...
» 2010-03-15 23:03:57
Ok juz dziala dzieki.
///
Znasz moze jakis dobry kurs winsocka bo ten na gamedev nie jest zbytnio rozbudowany...
(Pl)
P-15101
malan
» 2010-03-15 23:08:35
P-15102
1 « 2 »
Poprzednia strona Strona 2 z 2