Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <arpa/inet.h>
- int main(void)
- {
- int i=0;
- int rr=0;
- int device_id;
- unsigned long date_time;
- double longitude;
- double latitude;
- long speed;
- int heading;
- int altitude;
- int satellite;
- int event_id;
- char string[] = "1000000001,20121002121808,13.315520,52.226960,0,110,36,10,2";
- char delimiter[] = ",";
- char *ptr;
- int sockfd;
- struct sockaddr_in adresse;
- adresse.sin_family = AF_INET;
- adresse.sin_addr.s_addr = htonl(INADDR_ANY);
- adresse.sin_port = htons(31271);
- sockfd = socket(AF_INET, SOCK_STREAM, 0); /* erstelle stream socket */
- if(sockfd == -1) {
- perror("Fehler bei socket()");
- exit(EXIT_FAILURE);
- }
- /*binde socket an adresse */
- if( bind(sockfd, (struct sockaddr*) &adresse, sizeof(adresse)) == -1) {
- perror("bind fehlgeschlagen");
- exit(EXIT_FAILURE);
- }
- /* Bereite auf Verbindungsanforderung vor */
- if( listen(sockfd, 4) == -1 ) {
- perror("Fehler bei listen()");
- exit(EXIT_FAILURE);
- }
- while(1) {
- int connection = accept(sockfd, NULL, NULL); /*gibt neuen descriptor zurück ,
- der mit dem client verbunden ist*/
- if(connection == -1) {
- perror("Verbindungs Fehler");
- } else {
- char puffer[100];
- rr = read(connection, puffer, sizeof puffer);
- while(rr > 0) {
- if(rr >=29) {
- ptr = strtok(string, delimiter);
- while(ptr!=NULL) {
- switch(i) {
- case 0: device_id = atoi(ptr); break;
- case 1: date_time = atol(ptr); break;
- case 2: longitude = atof(ptr); break;
- case 3: latitude = atof(ptr); break;
- case 4: speed = atol(ptr); break;
- case 5: heading = atoi(ptr); break;
- case 6: altitude = atoi(ptr); break;
- case 7: satellite = atoi(ptr); break;
- case 8: event_id = atoi(ptr); break;
- default: printf("lol"); exit(1);
- }
- if(i==8) i=0;
- ptr = strtok(NULL,delimiter);
- ++i;
- }
- rr=0;
- printf("Device ID: %d\nDate Time: %ld\nLongitude: %lf\nLatitude: %lf\nSpeed: %ld\nHeading: %d\nAltitude: %d\nSatellite: %d\nEvent ID: %d\n",device_id,date_time,longitude,latitude,speed,heading,altitude,satellite,event_id);
- if(write(STDOUT_FILENO, puffer, rr) == -1) {
- perror("write() in stdout");
- break;
- }
- rr = read(connection, puffer, sizeof puffer);
- }
- if(rr == -1) {
- perror("read()");
- }
- (void)write(STDOUT_FILENO, "\n", 1);
- close(connection);
- }
- }
- }}
Add Comment
Please, Sign In to add comment