Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » GNU/Linux » [SOCKET] accept(...)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.06.2005, 21:06 Uhr
~Stefan__
Gast



Code:
    int sock;

    ....

    for(;;) {
        struct sockaddr_in client;

        int c = accept(sock, (struct sockaddr*)&client, sizeof(client)); // <=====

        printf("Verbindung von %s\n", inet_ntoa(client.sin_addr));


        //--------------------------------------------------------------
        char buffer[BUFFER_SIZE];
        strcpy(buffer,"Willkommen auf meinem Server\r\n");
        int g = send(c, buffer, strlen(buffer), 0);
        if (g == -1) {
            printf("-> senden fehlgeschlagen");
            return -1;
        }
        //--------------------------------------------------------------
        close(c);
    }


Code:
main.cpp:232: error: invalid conversion from `unsigned int' to socklen_t*'

Zeile 232 entspricht der oben durch einen Doppelpfeil Gekennzeichneten.

Wieso steht die accept-Funktion in dieser Funktion in jedem Tutorial und lässt sich bei mir hingegen nicht kompilieren? :confused:

Wäre über jeden Hinweis dankbar.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.06.2005, 21:08 Uhr
~Stefan__
Gast


Entschuldigt, dass das Thema gleich drei mal erstellt wurde.


Zitat:
Warning: stristr(): Empty delimiter. in /web/newtopic.php on line 165

Warning: Cannot modify header information - headers already sent by (output started at /web/newtopic.php:165) in /web/newtopic.php on line 252


Die Forensoftware gab folgenden Fehler aus. Man möge doch bitte die beiden überflüssigen Themen löschen. Danke.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
25.06.2005, 12:13 Uhr
typecast
aka loddab
(Operator)


Na ja, ich glaube nicht, dass das in jedem Tutorial steht

accept() verlangt naemlich als letzten Parameter ein socklen_t*

Deswegen wirst du in den meisten Tutorials sowas finden:


C++:
socklen_t addrlen;
int c;
//...
addrlen = sizeof(struct sockaddr_in);
if (-1 == (c = accept(sock, (struct sockaddr*)&client, &addrlen)))) {
  fprintf(stderr, "Fehler bei accept(): %s\n", strerror(errno));
  exit(1);
}



HTH
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ GNU/Linux ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: