diff options
Diffstat (limited to 'UnixDomainSocketServer/server.c')
-rw-r--r-- | UnixDomainSocketServer/server.c | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/UnixDomainSocketServer/server.c b/UnixDomainSocketServer/server.c deleted file mode 100644 index ce776b1..0000000 --- a/UnixDomainSocketServer/server.c +++ /dev/null @@ -1,78 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <sys/types.h> -#include <sys/socket.h> -#include <sys/un.h> - -#include "../common/fbgui.h" - -void error(const char *msg) { - perror(msg); - exit(1); -} - -int main(int argc, char *argv[]) { - int sockfd, newsockfd; - socklen_t clilen; - char buffer[DHCP_MESSAGE_SIZE]; - const char ack[ACK_SIZE] = "ACK"; - 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"); - } - - - 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, DHCP_MESSAGE_SIZE); - n = read(newsockfd, buffer, DHCP_MESSAGE_SIZE); - if (n <= 0) { - if (n<0) error("ERROR reading from socket"); - done = 1; - } - // search for last newline and replace it with a null - char * pch; - pch=strrchr(buffer,'\n'); - buffer[pch-buffer] = '\0'; - printf("Here is the message: \"%s\"\n", buffer); - if(!done) { - printf("send ACK\n"); - if (send(newsockfd, ack, ACK_SIZE, 0) < 0) { - error("ERROR on send"); - done = 1; - } - } - } while (!done); - close(newsockfd); - } - - close(sockfd); - return 0; -} |