SendBuf(void *, int, int) - Parameter


#1
Hi.
Kann mir jemand sagen, was die Parameter bei
SendBuf(void *, int, int)
(Send Buffer per TCP/IP zB) bedeuten sollen, also wofür sie stehen?
Hab im Internet den Befehl mit zwei Parametern gefunden, da stand der erste für den Buffer, der übertragen werden soll und das zweite für die Größe dieser Daten.
Aber wofür könnte hier nun der 3. Parameter stehen?

Und was bedeutet void * eigentlich?
 

Ryu1991

Erfahrenes Mitglied
#2
Deine erste Frage kann ich dir nicht beantworten, aber das void* bedeutet, dass du einen Zeiger eines Beliebigen Typs übergeben kannst, du musst ihn dann nur casten, also das Parameter sieht dann so aus: SendBuf((char*)Name,int,int) oder SendBuf((int*)Zahl,int,int)
 
#3
Also wenn ich dich richtig verstehe, so zum Beispiel:
SendBuf((TCPMessage*)TCPMessage1, sizeof(TCPMessage),sizeof(TCPMessage).
Am Anfang des Programms ist aber schon TCPMessage *TCPMessage1 definiert.
So kommt aber Fehlermeldung: "Ungültige Verwendung von typedef 'TCPMessage'.

Komischerweise bekomme ich nur dann keine Fehlermeldung wenn ich schreibe:
SendBuf(&TCPMessage1, sizeof(TCPMessage),sizeof(TCPMessage).
Also die Adresse übergebe.
Verstehe ich nicht...
Ich hoffe, er versucht dann nicht nur die Adresse zu übertragen, sondern wirklich den Inhalt vom Buffer.


Das Senden an sich klappt aber eh noch nicht. Glaube es ist noch nicht die richtige Funktion. TCP Client und Server verbinden sich und der Server lauscht, aber der Client kann nichts schicken, laut Fehlermeldung (WSAEOPNOTSUPP: Operation is not supported for the type of object referenced, Code 10045.)
 
Zuletzt bearbeitet:
#4
So, habe mittlerweile rausgefunden, was die Parameter verlangen:

SendBuf(void * Buf, int BufSize, int Flags).

Wenn mir jetzt noch jemand sagen könnte, was mit den Flags gemeint ist...
 

Ryu1991

Erfahrenes Mitglied
#5
Ich habe keine Ahnung, was Flags sind, aber in solchen fällen probiere ich es immer mit NULL als Parameter, klappt öfter als man es erwartet.
 
#6
Das habe ich mir auch gedacht...
Also der Client sendet jetzt wirklich was mit SendBuf, das kann man mit einem TCP-Sniffer gucken.
Bloß der Server will es noch nicht empfangen. Er ist im listening status, aber weiter passiert nichts.
 

Neue Beiträge