Revision 918 trunk/code/projects/mapping/python/server.c
| server.c (revision 918) | ||
|---|---|---|
| 22 | 22 |
int main(int argc, char *argv[]) |
| 23 | 23 |
{
|
| 24 | 24 |
char buffer[256]; |
| 25 |
int tmp = 0; |
|
| 25 | 26 |
char outbuf[256]; |
| 26 | 27 |
int n, newsockfd, len; |
| 28 |
short int tprint; |
|
| 27 | 29 |
Packet *received; |
| 28 |
|
|
| 29 |
|
|
| 30 | 30 |
if (argc < 2) {
|
| 31 | 31 |
fprintf(stderr,"usage: %s <port number>\n", argv[0]); |
| 32 | 32 |
exit(1); |
| 33 | 33 |
} |
| 34 | 34 |
newsockfd = make_sock(atoi(argv[1])); |
| 35 |
|
|
| 35 |
printf("Made socket\n");
|
|
| 36 | 36 |
make_listener(); |
| 37 | 37 |
printf("Robot listener created.\n");
|
| 38 | 38 |
|
| ... | ... | |
| 40 | 40 |
|
| 41 | 41 |
while (1) |
| 42 | 42 |
{
|
| 43 |
bzero(buffer, 256); |
|
| 43 | 44 |
wl_do(); |
| 44 | 45 |
|
| 45 |
/* this is a completely useless queue, since wl_do only reads one packet at a time */ |
|
| 46 | 46 |
received = dequeue(); |
| 47 |
/* oh well */ |
|
| 48 | 47 |
|
| 49 | 48 |
if (received) |
| 50 | 49 |
{
|
| 51 |
fprintf(stdout, "len: %d\n", buffer[1]); |
|
| 52 | 50 |
buffer[0] = (char) received->source; |
| 53 |
buffer[1] = (char) received->length-2; |
|
| 51 |
buffer[1] = (char) received->length; |
|
| 54 | 52 |
buffer[2] = (char) received->type; |
| 55 |
memcpy(buffer+3, received->packet, received->length); |
|
| 53 |
buffer[3] = 0; |
|
| 54 |
memcpy(buffer+4, received->packet, received->length); |
|
| 56 | 55 |
|
| 57 |
n = write(newsockfd, buffer, 200); |
|
| 56 |
memcpy(&tprint, buffer+4, 2); |
|
| 57 |
|
|
| 58 |
printf("%d\n", tprint);
|
|
| 59 |
n = write(newsockfd, buffer, 22); |
|
| 58 | 60 |
free(received); |
| 59 | 61 |
bzero(buffer, 256); |
| 60 | 62 |
} |
Also available in: Unified diff