Daten über UDP senden

Gast #386070
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

}
Gast #386071
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren