Ich benutze den Code auf http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/126639f1-487d-4755-af1b-cfb8bb64bdf8, aber es sendet keine Daten, wie es im ersten Beitrag sagt. Wie verwende ich WSAGetLastError(), wie es in der Lösung heißt, um herauszufinden, was falsch ist?Winsock IRC-Client verbindet, sendet aber keine Daten
Ich habe versucht, die folgenden:
void IRC::SendBuf(char* sendbuf)
{
int senderror = send(m_socket, sendbuf, sizeof(sendbuf), MSG_OOB);
if(senderror == ERROR_SUCCESS) {
printf("Client: The test string sent: \"%s\"\n", sendbuf);
}
else {
cout << "error is: " << senderror << ", WSAGetLastError: " << WSAGetLastError() << endl;
printf("Client: The test string sent: \"%s\"\n", sendbuf);
}
}
Und der Ausgang ist: Fehler: 4, WSAGetLastError: 0
Jetzt wird 0 gedruckt. Sollte ich nicht einen der hier aufgeführten Codes erhalten? http://msdn.microsoft.com/en-us/library/ms740668%28VS.85%29.aspx#winsock.wsaeshutdown_2 – thorvald
@thorvald, nicht unbedingt. Fehler "0" bedeutet "kein Fehler", d.h. alles lief glatt ab. Was lässt Sie vermuten, dass der vorherige Socket-Aufruf fehlgeschlagen sein sollte? –
Weil es nach dem Verbinden nichts an den Server gesendet hat, dachte ich, dass etwas schief gelaufen ist. Ich benutze den Code von dieser Seite: http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/126639f1-487d-4755-af1b-cfb8bb64bdf8, aber das Original-Poster hat nicht gesagt, wie er es behoben hat das Problem. – thorvald