www.mikrocontroller.net

Forum: PC-Programmierung Daten über UDP senden


Autor: Fritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Greetz!!

Ich möchte Daten über UDP schicken und habe große Probleme dabei. Gibt
es schon fertige Codes??

Autor: Nico S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Worin bestehen die Probleme? Codes? Google.

Autor: Fritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ne das Problem liegt beim Senden. Empfangen funktioniert aber das senden
nicht.
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <vcl.h>               //für CompareStr-Funktion
#include <sys/types.h>



//Für Windows Systeme

#ifdef _WIN32
#include <winsock.h>
#include <io.h>
#endif

#define Portnumber 1500
#define BACKLOG 100


int main(int argc, char *argv)
{
  clrscr();

  int sock, bind1, listen1, new_fd, sin_size;
  //struct sockaddr_in my_addr;
  struct sockaddr_in their_addr;
  int byte_count, fromlen;
  struct sockaddr_in addr;
  char buf[1024];
  int Eingabe;


//---------------------Winsock
initialisieren----------------------------

#ifdef _WIN32
WSADATA wsaData;
if (WSAStartup (MAKEWORD(1, 1), &wsaData) != 0)
{
  printf ("WSAStartup() kann Winsock nicht initialisieren.\n");
  exit (EXIT_FAILURE);
}
#endif

//---------------------------socket()----------------------------------- 
-

//sock = socket(AF_INET, SOCK_STREAM, 0);
sock = socket(PF_INET, SOCK_DGRAM, 0);
if(sock == -1)
  printf("\nFehler mit socket()! Es konnte kein Socket aufgebaut
werden\n");
else
  printf("\nAlles in Ordnung mit socket()!\n");

their_addr.sin_family = PF_INET;
their_addr.sin_port = htons(Portnumber);
their_addr.sin_addr.s_addr = INADDR_ANY;
//memset(&(my_addr.sin_zero), 0, 8);



//----------------------------sendto()----------------------------------

for(;;)
{

tolen = sizeof(addr);
byte_count = sendto(sock, buf, sizeof(buf), 0, (struct sockaddr
*)&addr, &tolen);
//byte_count = sendto(new_fd, buf, sizeof(buf), 0);
if (byte_count == -1)
        printf("\nFehler mit sendto()! Senden von Daten
fehlgeschlagen!\n");
else
        printf("\n%d Bytes gesendet\n", byte_count);

buf[byte_count] = '\0';
printf("\nGesendet: %s", buf);


 FILE *f = fopen("c:\Senden.txt","a");

  char buffer[80];
  char s[80];
  char Orte[10];
  char Orte1[10];
  int Vergleich;
  int i, m;




}

#ifdef _WIN32
closesocket(sock);
WSACleanup();
#endif

}

Autor: Fritz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab keine Ahnung wie ich die Daten einfügen muss das es sich um eine
Zeit handelt. Diese gewinne ich folgendermaßen:

TDateTime DateTime = Time();  // store the current date and time
  AnsiString str = TimeToStr(Time()); // convert the time to a string
  AnsiString stv = DateToStr(Date());
  Uhr->Caption = str + "        " + stv;  // display the time on the
form's caption

Bei sendto kann ich aber keine string verwenden

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.