Statistics
| Revision:

root / trunk / code / projects / mapping / python / server.c @ 932

History | View | Annotate | Download (1.7 KB)

1
/* A simple server in the internet domain using TCP
2
   The port number is passed as an argument */
3
#include <stdio.h>
4
#include <stdlib.h>
5
#include <strings.h>
6
#include <string.h>
7
#include <unistd.h>
8
#include <sys/types.h> 
9
#include <sys/socket.h>
10
#include <netinet/in.h>
11
12
#include "netserv.h"
13
#include "robots.h"
14
#include "wireless.h"
15
16
void donothin()
17
{
18
     return;
19
}
20
21
22
int main(int argc, char *argv[])
23
{
24
     char buffer[256];
25
     int n, newsockfd;
26
     short int x,y,ir1,ir2,ir3,ir4,ir5;
27
     float theta;
28
     Packet *received;
29
     if (argc < 2) {
30
          fprintf(stderr,"usage: %s <port number>\n", argv[0]);
31
          exit(1);
32
     }
33
/*      newsockfd = make_sock(atoi(argv[1])); */
34
     printf("Made socket\n");
35
     make_listener();
36
     printf("Robot listener created.\n");
37
38
     bzero(buffer,256);
39
40
     while (1)
41
     {
42
          bzero(buffer, 256);
43
          wl_do();
44
          
45
          received = dequeue();
46
47
          if (received)
48
          {
49
               buffer[0] = (char) received->source;
50
               buffer[1] = (char) received->length;
51
               buffer[2] = (char) received->type;
52
               buffer[3] = 0;
53
               memcpy(buffer+4, received->packet, received->length);
54
               
55
               memcpy(&x, buffer+4, 2);
56
               memcpy(&y, buffer+6, 2);
57
               memcpy(&theta, buffer+8, 4);
58
               memcpy(&ir1, buffer+12, 2);
59
               memcpy(&ir2, buffer+14, 2);
60
               memcpy(&ir3, buffer+16, 2);
61
               memcpy(&ir4, buffer+18, 2);
62
               memcpy(&ir5, buffer+20, 2);
63
64
               printf("(%d, %d, %f, %d, %d, %d, %d, %d)\n",
65
                      x, y, theta, ir1, ir2, ir3, ir4, ir5);
66
67
/*                n = write(newsockfd, buffer, 22); */
68
               free(received);
69
               bzero(buffer, 256);
70
          }
71
     }
72
     return 0; 
73
}
74
75
void error(char *msg)
76
{
77
     printf(msg);
78
     exit(1);
79
}