Fehlermeldung bei sendto

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Fehlermeldung bei sendto

    Hallo

    Ich versuche gerade ein Socket Projekt zu erstellen dass einen Text an die im code stehende ip adresse schiken soll.

    So siehts aus:

    Quellcode

    1. struct sockaddr_in addr;
    2. int s;
    3. char text[] = "TEST!\r\n";
    4. #define SOCK_DGRAM 2
    5. s = socket(SOCK_DGRAM);
    6. addr.sin_addr.s_addr = inet_addr("192.168.1.1");
    7. addr.sin_family = AF_INET;
    8. addr.sin_port = htons(4711);
    9. if (sendto(s, text, strlen(text), 0, (struct sockaddr*) &addr, sizeof(addr)) == -1)
    10. /////////////////////////////////////////////////////////////////////
    11. struct sockaddr_in cli;
    12. struct cli;
    13. struct cli_size;
    14. cli_size = sizeof(cli);
    15. if ((c = accept(s, (struct sockaddr*) &cli, &cli_size)) == -1)
    16. {
    17. perror("accept() failed");
    18. return 4;
    19. }
    Alles anzeigen


    Die Fehler dabei:
    Kompiller-Meldung:

    1>------ Erstellen gestartet: Projekt: NEW__S, Konfiguration: Debug Win32 ------
    1>Kompilieren...
    1>NEW.cpp
    1>c:\users\SK8\desktop\newripper__s\NEW__s\NEW.cpp(88) : error C2660: 'socket': Funktion akzeptiert keine 1 Argumente
    1>c:\users\SK8\desktop\newripper__s\NEW__s\NEW.cpp(102) : error C2513: 'main::cli_size': Keine Variable vor '=' deklariert
    1>c:\users\SK8\desktop\newripper__s\NEW__s\NEW.cpp(102) : error C2065: 'cli': nichtdeklarierter Bezeichner
    1>c:\users\SK8\desktop\newripper__s\NEW__s\NEW.cpp(102) : error C2070: ''unknown-type'': Ungültiger sizeof-Operand
    1>c:\users\SK8\desktop\newripper__s\NEW__s\NEW.cpp(103) : error C2065: 'cli': nichtdeklarierter Bezeichner
    1>c:\users\SK8\desktop\newripper__s\NEW__s\NEW.cpp(103) : error C2275: 'main::cli_size': Ungültige Verwendung dieses Typs als Ausdruck
    1> c:\users\SK8\desktop\newripper__s\NEW__s\NEW.cpp(100): Siehe Deklaration von 'main::cli_size'
    1>c:\users\SK8\desktop\newripper__s\NEW__s\NEW.cpp(103) : error C2275: 'main::cli_size': Ungültige Verwendung dieses Typs als Ausdruck
    1> c:\users\SK8\desktop\NEW__s\NEW__s\NEW.cpp(100): Siehe Deklaration von 'main::cli_size'
    1>Das Buildprotokoll wurde unter "file://c:\Users\SK8\Desktop\NEWR__S\NEW__S\Debug\BuildLog.htm" gespeichert.
    1>NEW__S - 7 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


    Ich habe vista und visual studio 08
    Beim Program-Start Kommt die meldung vom Firewall ob ich die verbindung zulassen moechte, darum bin ich mir sicher dass ein teil des codes korrekt sein wird wenn ich das unter der Zeile 16 weglasse dann bleibt dass Program nur hängen :D.
    Hoffe jemand hier kann mir helfen.

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von SK8 ()

  • Wenn du gelesen hättest was die der Compiler schreibt, oder auch nur grob überflogen, wär dir einiges klarer. Was du an Programm startest ist leider eine uralte Version die sich mal komplieren ließ. Zur Zeit schreibt er:
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

    Soll heißen: Aufgrund der vorher erwähnten Fehler habe ich überhaupt gar nix gemacht.
    Da du also das irgendwann mal kompilieren konntest, startest du immerwieder dieselbe Version, weil der Compiler sie da so lässt wie sie ist.
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]
  • Warum?
    Die Konsole bleibt irgendwie dem Anschein nach komplett hängen.
    Der Text das es nicht funktioniert wird nicht angezeig.
    Errinnerung: Anfangs kam eine Meldung vom Firewall ob ich dass Program(internetzugriff) zulassen moechte.

    Hoffe ich schaffe mal endlich mein socket program auf die reihe :(
  • Also jetzt musst du mal deinen eigenes Hirn verwenden. Guck dir die erste Fehlermeldung an:
    1>c:\users\SK8\desktop\newripper__s\NEW__s\NEW.cpp(88) : error C2660: 'socket': Funktion akzeptiert keine 1 Argumente
    So mit nen Denken weißt du, dass du eine falsche Anzahl an Argumenten an die Funktion socket() übergibst. Also mal in deinem Handbuch oder woher du auch immer die socket-funktion kennst, nachschauen, was man alles an socket übergeben kann.
    Wenn du da nix ordentliches findest, gibts immer noch google.
    Und das machst du jetzt solange bis zu keine Fehler mehr hast oder wirklich absolut nicht mehr weiterkommst, weil mehrere Folgefehler bestehen könnten.
    Open Source --> Programmieren aus Leidenschaft :!:

    Ich stehe weder für privaten Support per PM noch über einen IM zur Verfügung. Danke.
  • Wir reden hier also von dieser Zeile:

    Quellcode

    1. s = socket(SOCK_DGRAM);


    naja socket aktzeptiert keine 1 Argumente ABER socket aktzeptiert auch keine 0 argumente!

    Und jetzt schreibe ich mal nur

    Quellcode

    1. s=socket
    dann habe ich das grössere problem: error C2440: '=': 'SOCKET (__stdcall *)(int,int,int)' kann nicht in 'int' konvertiert werden. // Folgefehler

    Quellcode

    1. cli_size = sizeof(cli);
    // Meldung: error C2513: 'main::cli_size': Keine Variable vor '=' deklariert

    darüber freut sich google ebenfalls nicht :D was denn noch?

    ///

    'cli': nichtdeklarierter Bezeichner
    Was soll dass oben steht :

    Quellcode

    1. struct cli;


    Wozu dass sein soll

    Quellcode

    1. ''unknown-type'': Ungültiger sizeof-Operand
    weiss ich nicht.

    Quellcode

    1. 'main::cli_size': Ungültige Verwendung dieses Typs als Ausdruck
    Dies betrifft diese Zeile :

    Quellcode

    1. if ((c = accept(s, (struct sockaddr*) &cli, &cli_size)) == -1)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von SK8 ()

  • Moin Zusammen,

    Deadman schrieb:

    1>c:\users\SK8\desktop\newripper__s\NEW__s\NEW.cpp(88) : error C2660: 'socket': Funktion akzeptiert keine 1 Argumente
    So mit nen Denken weißt du, dass du eine falsche Anzahl an Argumenten an die Funktion socket() übergibst.

    SK8 schrieb:

    naja socket aktzeptiert keine 1 Argumente ABER socket aktzeptiert auch keine 0 argumente!

    Aber vielleicht 2 oder mehr ???

    Würdest Du auf den Link von SeBa klicken, wärst Du wahrscheinlich'n Schritt weiter...
    ;)