You are not logged in.

  • Login

1

Sunday, January 4th 2009, 3:06pm

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:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
		struct sockaddr_in addr;                     
        int s; 
        char text[] = "TEST!\r\n";

#define SOCK_DGRAM 2

        s = socket(SOCK_DGRAM);

        addr.sin_addr.s_addr = inet_addr("192.168.1.1");                                      
        addr.sin_family = AF_INET;                                                            
        addr.sin_port = htons(4711);                                                          
                                                                                              
        if (sendto(s, text, strlen(text), 0, (struct sockaddr*) &addr, sizeof(addr)) == -1)  


/////////////////////////////////////////////////////////////////////



		struct sockaddr_in cli;                                                             
        struct cli;
		struct cli_size;

        cli_size = sizeof(cli);
        if ((c = accept(s, (struct sockaddr*) &cli, &cli_size)) == -1)
		{
        perror("accept() failed");                                                                      
        return 4;
		}


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.

This post has been edited 6 times, last edit by "SK8" (Jan 4th 2009, 3:51pm)


2

Sunday, January 4th 2009, 4:04pm

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:

Quoted

========== 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.

3

Sunday, January 4th 2009, 5:52pm

Der Text wird trotzdem nicht gesendet. :(

4

Monday, January 5th 2009, 3:59pm

Ja, ach. Wahrscheinlich, weil dur den Quellcode irgendwo kopiert hast, und der das nicht gemacht hat. Woher weißt du denn dass er nicht gesendet wurde?

5

Monday, January 5th 2009, 5:25pm

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 :(

6

Monday, January 5th 2009, 6:22pm

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.

7

Monday, January 5th 2009, 6:57pm

Wir reden hier also von dieser Zeile:

C/C++ 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

C/C++ 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

C/C++ 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 :

C/C++ Quellcode

1
struct cli;


Wozu dass sein soll

C/C++ Quellcode

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

C/C++ Quellcode

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

C/C++ Quellcode

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

This post has been edited 2 times, last edit by "SK8" (Jan 5th 2009, 7:06pm)


8

Tuesday, January 6th 2009, 8:58pm

Ich sehe nur Bemerkungen gibt es denn niemanden hier der sich mit Sockets auskennt?(!)

9

Tuesday, January 6th 2009, 10:20pm

Doch ich kenn mich damit recht gut aus. Aber Sockets sind momentan überhaupt nicht dein Problem.

10

Wednesday, January 7th 2009, 12:43pm

Naja diese fehler hängen das ganze program:(

Ich hätte mir irgendwie Tipps oder Links vorgestellt. :D

11

Thursday, January 8th 2009, 7:21pm

ALso wie man Socket aufruft ust wirklich nicht schwer rauszufinden, schließlich gibt es für sowas ja man-pages...

12

Saturday, January 10th 2009, 7:43pm

Moin Zusammen,

Quoted from "Deadman"

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.

Quoted from "SK8"

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...
;)

Social bookmarks