Statistics
| Revision:

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

History | View | Annotate | Download (1.4 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 tmp = 0;
26
     char outbuf[256];
27
     int n, newsockfd, len;
28
     short int tprint;
29
     Packet *received;
30
     if (argc < 2) {
31
          fprintf(stderr,"usage: %s <port number>\n", argv[0]);
32
          exit(1);
33
     }
34
     newsockfd = make_sock(atoi(argv[1]));
35
     printf("Made socket\n");
36
     make_listener();
37
     printf("Robot listener created.\n");
38
39
     bzero(buffer,256);
40
41
     while (1)
42
     {
43
          bzero(buffer, 256);
44
          wl_do();
45
          
46
          received = dequeue();
47
48
          if (received)
49
          {
50
               buffer[0] = (char) received->source;
51
               buffer[1] = (char) received->length;
52
               buffer[2] = (char) received->type;
53
               buffer[3] = 0;
54
               memcpy(buffer+4, received->packet, received->length);
55
               
56
               memcpy(&tprint, buffer+4, 2);
57
58
               printf("%d\n", tprint);
59
               n = write(newsockfd, buffer, 22);
60
               free(received);
61
               bzero(buffer, 256);
62
          }
63
     }
64
     return 0; 
65
}
66
67
void error(char *msg)
68
{
69
     printf(msg);
70
     exit(1);
71
}