sds

simple/sensor data server
git clone git://git.hanetzok.net/sds
Log | Files | Refs | README | LICENSE

testserver.c (1032B)


      1 /* very simple webserver to mock a sensor for testing */
      2 #include <stdio.h>
      3 #include <string.h>
      4 #include <stdlib.h>
      5 #include <unistd.h>
      6 #include <arpa/inet.h>
      7 
      8 int main() {
      9     int server_fd, client_fd;
     10     struct sockaddr_in address;
     11     int opt = 1;
     12     int addrlen = sizeof(address);
     13     char response[] =
     14         "HTTP/1.1 200 OK\r\n"
     15         "Content-Type: text/plain\r\n"
     16         "Content-Length: 4\r\n"
     17         "\r\n"
     18         "3.14";
     19 
     20     server_fd = socket(AF_INET, SOCK_STREAM, 0);
     21 
     22     setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));
     23 
     24     address.sin_family = AF_INET;
     25     address.sin_addr.s_addr = INADDR_ANY;
     26     address.sin_port = htons(8080);
     27 
     28     bind(server_fd, (struct sockaddr *)&address, sizeof(address));
     29 
     30     listen(server_fd, 3);
     31 
     32     printf("Server running on port 8080...\n");
     33 
     34     while (1) {
     35         client_fd = accept(server_fd, (struct sockaddr *)&address, (socklen_t*)&addrlen);
     36         write(client_fd, response, strlen(response));
     37         close(client_fd);
     38     }
     39 
     40     return 0;
     41 }
     42