Forum: PC-Programmierung Daten über UDP senden


von Fritz (Gast)


Lesenswert?

Greetz!!

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

von Nico S. (Gast)


Lesenswert?

Worin bestehen die Probleme? Codes? Google.

von Fritz (Gast)


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

}

von Fritz (Gast)


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

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.