C Fenster sendto ()
Frage
Ich versuche, über UDP zu senden, um den folgenden Code verwenden, aber ich bin immer seltsame Ergebnisse.
if((sendto(newSocket, sendBuf, totalLength, 0, (SOCKADDR *)&sendAddr, sizeof(sendAddr)) == bytesSent) < 0)
{
printf("Send error! - %d\n", WSAGetLastError());
}
Allerdings sagen, wenn die totalLength Variable 30 die sendto Funktion tatsächlich 2.292.556 zurück gesetzt ist, sollte es nicht etwas, zumindest um die 30 Mark zurückkommen? Ich habe die totalLength Variable überprüft, bevor sendto verwenden und es wird wieder glücklich Wert i mit einigen, aber dann sendto kehrt einen massiven Wert. Die Gesamtlänge ist nie größer dann die tatsächliche Puffergröße.
WSAGetLastError ist gerade Rückkehr 0.
Danke.
Lösung
Ich denke, Ihr Problem ist der == bytesSent) < 0)
Teil der bedingten. Should'n dies wäre etwas entlang der Linien von if (( bytesSent = sendto( ... )) < 0 )
?
Andere Tipps
Sie sind checing wenn sendto (...) gleich statt wahrscheinlich bytesSent
bytesSent=sendto