Ich habe eine Probleme mit dem Empfangen von UDP Nachrichten. Mein Embedded System hat die IP Adresse 192.168.1.5. In Windows XP habe ich mir eine Testapplikation in Visual Studio C++ geschrieben. Hier kann ich die UDP Nachrichten vom Embedded System nicht empfangen. die Funktion "recvfrom" wird dabei immer abgebrochen. Auf dem WIndows XP Rechner habe ich die IP Adressde 192.168.1.6 eingestellt. Was mache ich da eventuell falsch?
Ich bekomme die Fehlercode: 10022 zurück. Das Senden von der C++ Applikation zum Embedded System funktioniert. Muss ich noch was einstellen? --> IP Embedded System: "addr.sin_addr.s_addr=inet_addr("192.168.1.5");"
1 | WSAEINVAL 10022 |
2 | The socket has not been bound with bind, or an unknown flag was specified, |
3 | or MSG_OOB was specified for a socket with SO_OOBINLINE enabled, or (for |
4 | byte stream-style sockets only) len was zero or negative. |
(von [1,2])
1 | int recvfrom( |
2 | __in SOCKET s, |
3 | [..] |
4 | s [in] |
5 | A descriptor identifying a bound socket. |
(von [1]) Ich vermute dass das der Fehler ist. HTH [1] http://msdn.microsoft.com/en-us/library/ms740120%28VS.85%29.aspx [2] http://msdn.microsoft.com/en-us/library/ms740668%28VS.85%29.aspx#winsock.wsaeinval_2
Dann müsste ich also in meiner C++ Applikation "bind" ausführen ?
Ich kann es erst später ausprobieren. Liegt es wirklich daran? Muss ich in "bind" auch noch eine IP übergeben?
Du mußt bind() das übergeben, von dem in der Dokumentation von bind() steht, daß du es übergeben mußt.
und ja: man kann auch selber die Doku lesen und die Rückgabewerte beachten, sowie zu den Rückgabewerten den zugehörigen Text holen. Unglaublich.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.