www.mikrocontroller.net

Forum: PC-Programmierung C++: Probleme mit UDP Verbindung


Autor: Eva (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
..und was sagt die Glasku^W^WWSAGetLastError() dazu?

Autor: Eva (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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");"

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
WSAEINVAL 10022
The socket has not been bound with bind, or an unknown flag was specified,
or MSG_OOB was specified for a socket with SO_OOBINLINE enabled, or (for
byte stream-style sockets only) len was zero or negative.
 (von [1,2])
int recvfrom(
__in         SOCKET s,
[..]
s [in]
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%2...
[2] 
http://msdn.microsoft.com/en-us/library/ms740668%2...

Autor: Eva (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann müsste ich also in meiner C++ Applikation "bind" ausführen ?

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dein server muss sich an einen port "bind"en... ;)

http://www.c-worker.ch/tuts/wstut_op.php

Autor: Eva (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kann es erst später ausprobieren. Liegt es wirklich daran? Muss ich 
in "bind" auch noch eine IP übergeben?

Autor: Harri Hirsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du mußt bind() das übergeben, von dem in der Dokumentation von bind() 
steht, daß du es übergeben mußt.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.