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

[WINSOCK] Serwer

Ostatnio zmodyfikowano 2009-11-16 20:22
Autor Wiadomość
markon
Temat założony przez niniejszego użytkownika
[WINSOCK] Serwer
» 2009-11-15 20:32:38
witam, piszę serwer w winsocku, ale nie mogę przeskoczyć błędu
C/C++
#include <iostream>
#include <winsock2.h>



using namespace std;

int main()
{
    WSADATA WSD;
   
    WSAStartup( MAKEWORD( 2, 0 ), & WSD );
   
   
    SOCKET sListen, // nasze "ucho"
    sClient; // nasz klient
   
    // tworzymy nasze "ucho"
    sListen = socket( AF_INET, SOCK_STREAM, IPPROTO_IP );
   
   
    sockaddr_in local; // ustawienia serwera
    int port = 6789; // nasz przykładowy port
   
    memset( & local, 0, sizeof( local ) ); // czyścimy strukturę
    local.sin_addr.s_addr = htonl( INADDR_ANY ); // wszyscy mogą się z nami połączyć
    local.sin_family = AF_INET; // korzystamy z TCP/IP
    local.sin_port = htons(( u_short ) port ); // wybieramy port
   
   
    if( bind( sListen,( sockaddr * ) & local, sizeof( local ) ) == SOCKET_ERROR )
    {
        cout << "Bind zakonczony porazka" << endl;
        closesocket( sListen ); // nowość zamykamy socketa
        WSACleanup();
       
        return 1;
    }
   
   
   
   
    if( listen( sListen, SOMAXCONN ) == SOCKET_ERROR ) // dajemy słuch
    {
        cout << "Operacja dodania słuchu nieudana" << endl;
        closesocket( sListen );
        WSACleanup();
        return 1;
    }
   
   
   
   
   
    sockaddr_in client;
    sClient = accept( sListen,( sockaddr * ) & client,( int * ) sizeof( client ) );
   
   
    if( sClient == INVALID_SOCKET )
    {
        cout << "blad!" << endl;
        closesocket( sClient );
        closesocket( sListen );
        WSACleanup();
        return 1;
    }
   
   
   
   
   
    return 0;
}
P-11596
DejaVu
» 2009-11-15 20:56:10
A konkretniej kod się nie kompiluje czy co?

/edit:
Może coś temat powiązany Ci pomoże: http://forum.ddt.pl/?Tid=1498. Tymczasem brak precyzyjnego opisu problemu = brak możliwości pomocy :)
P-11597
markon
Temat założony przez niniejszego użytkownika
» 2009-11-15 21:03:17
po prostu wyświetla się napis błąd
P-11598
DejaVu
» 2009-11-15 22:44:43
Ostatni argument funkcji jest nieprawidłowy. Dokładniej: (int*) sizeof(client).
P-11602
markon
Temat założony przez niniejszego użytkownika
» 2009-11-16 15:56:59
a może wiesz na co zamienić ten typ danych, bo nie bardzo mam pomysł?
P-11606
DejaVu
» 2009-11-16 17:14:32
Skoro uczysz się komunikacji sieciowej to zapewne z jakiegoś kursu. Zobacz w nim przykład wykorzystania lub zobacz jak wygląda wywołanie tej funkcji w innym temacie, który podałem.
P-11609
markon
Temat założony przez niniejszego użytkownika
» 2009-11-16 17:43:05
dobra, problem rozwiązany. teraz pytanie z innej beczki:
1. Jak za pomocą winsocka pobrać/zauploadować dane - czy są jakieś funkcje, czy może wygląda to podobnie do aplikacji klient serwer?
P-11611
Elaine
» 2009-11-16 19:47:59
Zgaduję, że zaraz przyleci rozwścieczony moderator albo wręcz admin i zacznie krzyczeć, że jeden temat = jeden problem ;P
P-11612
« 1 » 2
  Strona 1 z 2 Następna strona