Forum: Compiler & IDEs Wertübergabe in Funktion


von Siggi K. (Gast)


Lesenswert?

Hallo Wissende,

ich möchte in folgender Funktion

UDPOpenClient(IP_ADDRESS_TYPE addType, UDP_PORT remotePort, 
IP_MULTI_ADDRESS* remoteAddress)

die IP 192.168.17.255 übergeben. Wie teile ich ihr das bei folgendem 
Funktionsaufruf mit:

UDPOpenClient(IP_ADDRESS_TYPE_IPV4,19201,???);

Danke für alle Antworten.

von Peter II (Gast)


Lesenswert?

woher sollen wir wissen wie die funktion UDPOpenClient arbeitet? Was 
steht denn in der doku? Zu welchem Framework gehört sich denn überhaupt?

google findet sich nciht mal.

von Karl H. (kbuchegg)


Lesenswert?

Siggi K. schrieb:
> Hallo Wissende,
>
> ich möchte in folgender Funktion
>
> UDPOpenClient(IP_ADDRESS_TYPE addType, UDP_PORT remotePort,
> IP_MULTI_ADDRESS* remoteAddress)
>
> die IP 192.168.17.255 übergeben. Wie teile ich ihr das bei folgendem
> Funktionsaufruf mit:
>
> UDPOpenClient(IP_ADDRESS_TYPE_IPV4,19201,???);
>
> Danke für alle Antworten.

Ich hätte mal gesagt, der Schlüssel liegt im
     ....., IP_MULTI_ADDRESS* remoteAddress)

du legst dir also so eine Struktur an
1
IP_MULTI_ADDRESS address;

sorgst dafür, dass die relevanten Werte in die jeweiligen Member des 
address Objektes kommen, und rufst die Funktion auf, in dem du einen 
Pointer auf dein IP_MULTI_ADDRESS Objekt übergibst, ganz so wie es die 
Funktion haben will:
1
  UDPOpenClient( IP_ADDRESS_TYPE_IPV4, 19201, &address );

von Siggi K. (Gast)


Lesenswert?

Peter II schrieb:
> woher sollen wir wissen wie die funktion UDPOpenClient arbeitet?

/*********************************************************************** 
***
  Function:
   UDPOpenClient(IP_ADDRESS_TYPE addType, UDP_PORT remotePort, 
IP_MULTI_ADDRESS* remoteAddress)

  Summary:
  Opens a UDP socket as a client.

  Description:
  Provides a unified method for opening UDP client sockets.

  Precondition:
    UDP is initialized.

  Parameters:
    IP_ADDRESS_TYPE addType  -        The type of address being used. 
Example: IP_ADDRESS_TYPE_IPV4.
    UDP_PORT remotePort    -  UDP port to connect to. The local port for 
client sockets will be automatically picked by the UDP module.
    IP_MULTI_ADDRESS* remoteAddress  -  The remote address to be used.

  Returns:
    INVALID_SOCKET -  No sockets of the specified type were available
                      to be opened.
    Otherwise -       A UDP_SOCKET handle. Save this handle and use it 
when
                      calling all other UDP APIs.

  Remarks:
    IP_ADDRESS_TYPE_ANY is not supported!
 ************************************************************************ 
**/

von Siggi K. (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> du legst dir also so eine Struktur an
> IP_MULTI_ADDRESS address;
> sorgst dafür, dass die relevanten Werte in die jeweiligen Member des
> address Objektes kommen

Danke für den Hinweis, aber wie genau muß ich das jetzt für meine IP 
machen?

von Karl H. (kbuchegg)


Lesenswert?

Sieh dir halt mal an, was sich hinter einem IP_MULTI_ADDRESS verbirgt. 
da wird eine Struktur dahinterstecken. Eventuell ein Array. Aber siehs 
dir an.

Und dann geh und kauf dir ein C-Buch und arbeite es durch.
Netzwerkprogrammiern wollen, aber die einfachsten Grundlagen der C 
Programmierung nicht kennen. Das kann was werden.

von Siggi K. (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Das kann was werden.

Die UDP-Verbindung steht jetzt und arbeitet einwandfei.

Aber auch für Dich gibt es Themen, mit denen Du Dich besser einmal 
auseinander setzen solltest:

http://tools.ietf.org/html/rfc1855

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Siggi K. schrieb:
> Aber auch für Dich gibt es Themen

Ich glaube nicht, daß Du Karl Heinz irgendwelche Netiquette-Vorhaltungen 
machen solltest.

Wirklich nicht.

von Udo S. (urschmitt)


Lesenswert?

Siggi K. schrieb:
> Die UDP-Verbindung steht jetzt und arbeitet einwandfei.

Das wird auch das einzige sein was funktioniert. Zumindest von den 
selbst geschriebenen Programmteilen.
Wahrscheinlich besteht das ganze Programm nur aus geklauten 
(Tschuldigung, meinte kopierten) Softwarefragmenten.
Und so jemand macht Karl Heinz von der Seite an, statt sich für die 
Hilfe ordentlich zu bedanken.
So ein ... <Selbstzensur>

Da ist ja Guttenberg fast symphatisch dagegen.

Nachtrag: Nicht mal der Satz ist richtig, UDP ist ein VERBINDUNGSLOSES 
Protokoll
ROFL

von Karl H. (kbuchegg)


Lesenswert?

Wow.

Du hast 7 Tage gebraucht um rauszufinden, was bei
1
  IP_MULTI_ADDRESS address;
2
3
  address...... = 192;
4
  address...... = 168;
5
  address...... = 17;
6
  address...... = 255;
7
8
  UDPOpenClient( IP_ADDRESS_TYPE_IPV4, 19201, &address );

an die Stelle der Punkte gehört, bzw. ob es in deinem, mir unbekannten 
Framework, eine Funktion gibt, der du die Adresse zb als String 
übergeben kannst, und die genau diese 4 Anweisungen letzten Endes 
durchführt, und wirfst mir Unfreundlichkeit vor, weil ich nicht für dich 
4 Stunden lang auf alle möglichen Arten google, um rauszufinden zu 
welchem Framework dieser Funktionsaufruf gehört?

Wenn du schon Netiquette erwähnst. Es gehört auch zum guten Ton, dass 
man sein Framework nennt und wenn möglich einen Link zur betreffenden 
Doku postet. Denn weder mit IP_MULTI_ADDRESS noch mit UDPOpenClient 
wurde/wird google fündig.

Und wenn dir weder mit der Funktionsdoku, noch mit dem zusätzlichen 
Hinweis klar ist, dass die IP Adresse irgendwie in das IP_MULTI_ADDRESS 
Objekt namens address rein muss, und du dazu wissen musst, was sich 
hinter IP_MULTI_ADDRESS verbirgt und wie es aufgebaut ist, dann bleibe 
ich bei meiner Aussage "Das kann was werden".

Das sich Neulinge manchmal bei der Beurteilung einer 
Funktions-Argumentliste vertun und einen Pointer, den man da drinn sieht 
fehlinterpretieren, kommt schon mal vor - obwohl es eigentlich nicht 
vorkommen sollte, wenn man ein wenig praktisch gearbeitet hat und ganz 
speziell darf es eigentlich nicht mehr vorkommen, wenn man die Doku vor 
sich hat. Geb ich dir aber den Teil
1
  IP_MULTI_ADDRESS address;
2
3
  ....
4
5
  UDPOpenClient( IP_ADDRESS_TYPE_IPV4, 19201, &address );
vor, damit klar ist, warum die Funktion da einen Pointer erwartet, dann 
erwarte ich eigentlich schon von jedem (auch von einem Neuling), dass er 
selbst in der Lage ist rauszufinden, was da jetzt dazwischen kommen 
muss. und zwar in weniger als in 7 Tagen und ohgne 5 mal nachfragen.

von Siggi K. (Gast)


Lesenswert?

Jetzt läuft auch die TCP/IP-Verbindung mit den Verbindungsdaten, die 
über UDP ausgehandelt wurden.

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.