From 8024e86b5ce80beb2870654cf29308a0f1f208b8 Mon Sep 17 00:00:00 2001 From: Niklas Date: Thu, 1 Sep 2011 16:16:07 +0200 Subject: bigger changes in the checkConnectivity method. using now route command to delete and add the default route. for this i am writing the gateways for every interface into a new file. located at /var/tmp/gateways_ --- UnixDomainSocketServer/server.c | 74 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 UnixDomainSocketServer/server.c (limited to 'UnixDomainSocketServer/server.c') diff --git a/UnixDomainSocketServer/server.c b/UnixDomainSocketServer/server.c new file mode 100644 index 0000000..7746b49 --- /dev/null +++ b/UnixDomainSocketServer/server.c @@ -0,0 +1,74 @@ +/* A simple server in the internet domain using TCP + The port number is passed as an argument */ +#include +#include +#include +#include +#include +#include +#include + +void error(const char *msg) { + perror(msg); + exit(1); +} + +int main(int argc, char *argv[]) { + int sockfd, newsockfd; + socklen_t clilen; + char buffer[1024]; + char ack[4]; + struct sockaddr_un serv_addr, cli_addr; + int n; + + sockfd = socket(AF_UNIX, SOCK_STREAM, 0); + if (sockfd < 0) + error("ERROR opening socket"); + + bzero((char *) &serv_addr, sizeof(serv_addr)); + + serv_addr.sun_family = AF_UNIX; + strcpy(serv_addr.sun_path, "/var/tmp/qt_c_socket_default"); + unlink("/var/tmp/qt_c_socket_default"); + if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) + error("ERROR on binding"); + + if (listen(sockfd, 5) == -1) { + error("ERROR on listen"); + } + + strcpy(ack,"ACK"); + + for (;;) { + int done; + printf("Waiting for a connection...\n"); + clilen = sizeof(cli_addr); + + newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen); + if (newsockfd < 0) + error("ERROR on accept"); + + printf("Connected.\n"); + done = 0; + + do { + bzero(buffer, 1024); + n = read(newsockfd, buffer, 1023); + if (n <= 0) { + if (n<0) error("ERROR reading from socket"); + done = 1; + } + printf("Here is the message: \"%s\"\n", buffer); + if(!done) { + if (send(newsockfd, ack, sizeof(ack), 0) < 0) { + error("ERROR on send"); + done = 1; + } + } + } while (!done); + close(newsockfd); + } + + close(sockfd); + return 0; +} -- cgit v1.2.3-55-g7522