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


von Eva (Gast)


Angehängte Dateien:

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?

von g457 (Gast)


Lesenswert?

..und was sagt die Glasku^W^WWSAGetLastError() dazu?

von Eva (Gast)


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");"

von g457 (Gast)


Lesenswert?

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

von Eva (Gast)


Lesenswert?

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

von ... .. (docean) Benutzerseite


Lesenswert?

dein server muss sich an einen port "bind"en... ;)

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

von Eva (Gast)


Lesenswert?

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

von Harri Hirsch (Gast)


Lesenswert?

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

von Klaus W. (mfgkw)


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.

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
Noch kein Account? Hier anmelden.