Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* A simple server in the internet domain using TCP
- The port number is passed as an argument
- This version runs forever, forking off a separate
- process for each connection
- */
- #include <stdio.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <string.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <string.h>
- void dostuff(int); /* function prototype */
- void error(const char *msg)
- {
- perror(msg);
- exit(1);
- }
- FILE *ptr_myfile;
- int main(int argc, char *argv[])
- {
- int sockfd, newsockfd, portno, pid;
- socklen_t clilen;
- struct sockaddr_in serv_addr, cli_addr;
- if (argc < 2) {
- fprintf(stderr,"ERROR, no port provided\n");
- exit(1);
- }
- sockfd = socket(AF_INET, SOCK_STREAM, 0);
- if (sockfd < 0)
- error("ERROR opening socket");
- bzero((char *) &serv_addr, sizeof(serv_addr));
- portno = atoi(argv[1]);
- serv_addr.sin_family = AF_INET;
- serv_addr.sin_addr.s_addr = INADDR_ANY;
- serv_addr.sin_port = htons(portno);
- if (bind(sockfd, (struct sockaddr *) &serv_addr,
- sizeof(serv_addr)) < 0)
- error("ERROR on binding");
- listen(sockfd,5);
- clilen = sizeof(cli_addr);
- while (1) {
- newsockfd = accept(sockfd,
- (struct sockaddr *) &cli_addr, &clilen);
- if (newsockfd < 0)
- error("ERROR on accept");
- pid = fork();
- if (pid < 0)
- error("ERROR on fork");
- if (pid == 0) {
- close(sockfd);
- dostuff(newsockfd);
- exit(0);
- }
- else close(newsockfd);
- } /* end of while */
- close(sockfd);
- return 0; /* we never get here */
- }
- /******** DOSTUFF() *********************
- There is a separate instance of this function
- for each connection. It handles all communication
- once a connnection has been established.
- *****************************************/
- void dostuff (int sock)
- {
- //writing file to client
- int n;
- int counter;
- char buffer[256];
- bzero(buffer,256);
- ptr_myfile=fopen("test1.txt","r");
- if(!ptr_myfile){
- printf("file couldn't open");
- }
- /* for(counter=1;counter <=10;counter++){
- fwrite(&buffer,sizeof(*buffer),1,ptr_myfile);
- n = read(sock,buffer,255);
- n = write(sock,buffer,18);};*/
- //make list match each get text and match to user
- if (n < 0) error("ERROR reading from socket"){
- // if (!strcmp ( buffer, "i gay\n" )) n = write(sock,"you are gay",18);
- //else{ printf("Here is the message: %s\n",buffer);
- n = write(sock,buffer,18);};
- fread(&ptr_myfile,sizeof(*buffer),1,buffer);
- n = write(sock,"all good",18);
- };
- if (n < 0) error("ERROR writing to socket");
- }
- /*
- if (n < 0) error("ERROR reading from socket");
- printf("Here is the message: %s\n",buffer);
- n = write(sock,"got it",18);
- if (n < 0) error("ERROR writing to socket");*/
- //}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement