UDP Server

Online-tutorials.net Forenübersicht/C++ / C#/UDP Server

Antworten Neues Thema Bottom Seite 1 

Autor | Nachricht      nächster / vorheriger Thread

Rene
Einsteiger

avatar

Registriert seit: 07.2011
Beiträge:1

UDP Server
Hallo,
ich habe folgendes Problem.
Ich bin dabei einen NMEA Konverter zu programmieren.
Die Daten die mein GPS-Tracker sendet werden über das UDP-Protokoll gesendet.
Das Tracker Protokoll enthält Binäre und GPS Daten.
Das Problem besteht nun darin, dass die Binären Daten nicht angezeigt werden, also alles was ab den Binären Daten als GPS Koordinaten vorhanden ist, wird nicht angezeigt.

Hier der Datenstream, der eigentlich komplett übertragen werden soll:

$$W..i....-™U130528.000,A,4824.5857,N,01003.9330,E,0.00,,300611,,,A*76
|0.8|492|0000ßØ

Übertragen wird aber nur $$ der Rest wird einfach weggelassen.

Hier mein Quellcode:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#pragma comment (lib,"wsock32.lib") // the port users will be connecting to

#include<winsock.h>
#define port 8500
#define MAXDATASIZE 100



int main(void)
{
int sockfd;
struct sockaddr_in my_addr,their_addr;
char buff[MAXDATASIZE];
int numbytes;
int val;


WSADATA wsaData;

if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
fprintf(stderr, "WSAStartup failed.\n");
exit(1);
}
if((sockfd=(socket(AF_INET,SOCK_DGRAM,0))) <0)
{
perror("socket");
WSACleanup();
exit(1);
}





my_addr.sin_family=AF_INET;
my_addr.sin_port=htons(port);
my_addr.sin_addr.s_addr=INADDR_ANY;
memset(&(my_addr.sin_zero),0,8);
val=sizeof(struct sockaddr);
if(bind(sockfd,(struct sockaddr*)&my_addr,val) ==-1)
{
perror("bind");
WSACleanup();
exit(1);
}
for(;laugh
{
printf("\n\nwaiting for client to connect");
numbytes=sizeof(struct sockaddr);
if((numbytes=recvfrom(sockfd,buff,MAXDATASIZE-1,0,(struct sockaddr*)&their_addr,&numbytes)) == -1)

{
printf("read error");
//WSACleanup();
val=WSAGetLastError();
}
buff[numbytes]=0;
fprintf(stderr,"\ndata recieved from client :%s",buff);


if((numbytes=sendto(sockfd,buff,numbytes,0,(struct sockaddr*)&their_addr,sizeof(struct sockaddr)))<0)
{
perror("send");
exit(1);
}

fprintf(stderr,"\nbytes send to client %d",numbytes);

}
return 0;
}

Hat mir jemand eine Lösung, wie ich den gesamten Datenstream angezeigt bekomme.

Gruß René

07.07.2011 21:16Profil >> Zitat >> IP gespeichert 
Keywords:NMEA, UDP-Server, GPS
                   nächster / vorheriger Thread

Antworten Neues Thema Top Seite 1