All pastes #389945 Raw Edit

bajs

public c v1 · immutable
·published 2007-03-11 01:50 UTC
rendered paste body
#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#define IP_NO 192.168.0.25#define PORT 42000#define BACKLOG 10int main(int argc,char** argv){    int sock;    int new_fd;    int yes = 1;    struct sockaddr_in my_addr;    struct sockaddr_in peer_addr;    int sin_size;    char *msg = "HTTP/1.1 200 OK\r\nServer: bajs\r\nContent-type: text/html\r\nContent-length: 4\r\n\r\nTEST";    if((sock = socket(PF_INET,SOCK_STREAM,0)) == -1) {        perror("socket");        exit(EXIT_FAILURE);    }    my_addr.sin_family = AF_INET;    my_addr.sin_port = htons(PORT);    my_addr.sin_addr.s_addr = htonl(INADDR_ANY);    memset(&(my_addr.sin_zero),sizeof(struct sockaddr_in),8); /* Zeroset rest of struct. */    if(bind(sock,(struct sockaddr *) &my_addr,                sizeof(struct sockaddr)) == -1) {        perror("bind");        exit(EXIT_FAILURE);    }    if(setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,&yes,sizeof(int)) == -1) {        perror("setsockopt");        exit(EXIT_FAILURE);    }    if(listen(sock,BACKLOG) == -1) {        perror("listen");        exit(EXIT_FAILURE);    }    for(;;) {        sin_size = sizeof(struct sockaddr_in);        if((new_fd = accept(sock,(struct sockaddr *) &peer_addr,                &sin_size)) == -1) {            perror("accept");            exit(EXIT_FAILURE);        }        printf("server: got connection from %s\n",                inet_ntoa(peer_addr.sin_addr));        if(!fork()) {            close(sock);            if((send(new_fd,msg,strlen(msg),0)) == -1)                perror("send");            close(new_fd);            exit(0);        }        close(new_fd);    }    return 0;}