Guest User

Untitled

a guest
Dec 15th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.74 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <unistd.h>
  5. #include <sys/types.h>
  6. #include <sys/socket.h>
  7. #include <arpa/inet.h>
  8. int main(void)
  9. {
  10. int i=0;
  11. int rr=0;
  12. int device_id;
  13. unsigned long date_time;
  14. double longitude;
  15. double latitude;
  16. long speed;
  17. int heading;
  18. int altitude;
  19. int satellite;
  20. int event_id;
  21. char string[] = "1000000001,20121002121808,13.315520,52.226960,0,110,36,10,2";
  22. char delimiter[] = ",";
  23. char *ptr;
  24. int sockfd;
  25. struct sockaddr_in adresse;
  26. adresse.sin_family = AF_INET;
  27. adresse.sin_addr.s_addr = htonl(INADDR_ANY);
  28. adresse.sin_port = htons(31271);
  29.  
  30. sockfd = socket(AF_INET, SOCK_STREAM, 0); /* erstelle stream socket */
  31. if(sockfd == -1) {
  32. perror("Fehler bei socket()");
  33. exit(EXIT_FAILURE);
  34. }
  35. /*binde socket an adresse */
  36. if( bind(sockfd, (struct sockaddr*) &adresse, sizeof(adresse)) == -1) {
  37. perror("bind fehlgeschlagen");
  38. exit(EXIT_FAILURE);
  39. }
  40. /* Bereite auf Verbindungsanforderung vor */
  41. if( listen(sockfd, 4) == -1 ) {
  42. perror("Fehler bei listen()");
  43. exit(EXIT_FAILURE);
  44. }
  45. while(1) {
  46. int connection = accept(sockfd, NULL, NULL); /*gibt neuen descriptor zurück ,
  47. der mit dem client verbunden ist*/
  48. if(connection == -1) {
  49. perror("Verbindungs Fehler");
  50. } else {
  51. char puffer[100];
  52. rr = read(connection, puffer, sizeof puffer);
  53. while(rr > 0) {
  54. if(rr >=29) {
  55. ptr = strtok(string, delimiter);
  56.  
  57. while(ptr!=NULL) {
  58. switch(i) {
  59. case 0: device_id = atoi(ptr); break;
  60. case 1: date_time = atol(ptr); break;
  61. case 2: longitude = atof(ptr); break;
  62. case 3: latitude = atof(ptr); break;
  63. case 4: speed = atol(ptr); break;
  64. case 5: heading = atoi(ptr); break;
  65. case 6: altitude = atoi(ptr); break;
  66. case 7: satellite = atoi(ptr); break;
  67. case 8: event_id = atoi(ptr); break;
  68. default: printf("lol"); exit(1);
  69. }
  70. if(i==8) i=0;
  71. ptr = strtok(NULL,delimiter);
  72. ++i;
  73. }
  74. rr=0;
  75. 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);
  76. if(write(STDOUT_FILENO, puffer, rr) == -1) {
  77. perror("write() in stdout");
  78. break;
  79. }
  80. rr = read(connection, puffer, sizeof puffer);
  81. }
  82. if(rr == -1) {
  83. perror("read()");
  84. }
  85. (void)write(STDOUT_FILENO, "\n", 1);
  86. close(connection);
  87. }
  88.  
  89. }
  90.  
  91. }}
Add Comment
Please, Sign In to add comment