Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <string.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- char inusername[100];
- char inpassword[100];
- int pid;
- char usernames[50];
- char passwords[50];
- int Ucomp = -1000;
- int Pcomp = -1000;
- int counter = 0;
- int i = 0;
- void parser(char*, FILE*);
- void error(char *msg)
- {
- perror(msg);
- exit(1);
- }
- int main(int argc, char *argv[])
- {
- char input[512];
- int sockfd, newsockfd, portno, clilen;
- char buffer[256];
- struct sockaddr_in serv_addr, cli_addr;
- int n, r;
- if (argc < 2)
- {
- fprintf(stderr,"ERROR, no port providedn");
- 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);
- puts("Connection accepted");
- pid = fork();
- if (pid < 0) {
- error("ERROR in creating new socket");
- }
- if (pid == 0) {
- close(sockfd);
- while (counter <= 3)
- {
- FILE *pToFile = fopen("pwd.txt", "r");
- write(newsockfd, "Username:", strlen("Usernamen"));
- recv(newsockfd, inusername, 20, 0);
- write(newsockfd, "Password:", strlen("Passwordn"));
- recv(newsockfd, inpassword, 20, 0);
- parser(input, pToFile);
- if (Ucomp == 0)
- {
- if (Pcomp == 0)
- {
- write(newsockfd, "Welcome to chat", strlen("Welcome to chatn"));
- close(newsockfd);
- exit(1);
- }
- }
- else if (counter < 2)
- {
- write(newsockfd, "InvalidnUsername:", strlen("Invalid"));
- memset(&inusername[0], 0, sizeof(inusername));
- memset(&inpassword[0], 0, sizeof(inpassword));
- counter++;
- }
- else
- {
- write(newsockfd, "Access Denied", strlen("Access Deniedn"));
- exit(1);
- close(newsockfd);
- }
- fclose(pToFile);
- }
- }
- else {
- close(newsockfd);
- }
- }
- return 0;
- }
- void parser(char *input, FILE *pToFile)
- {
- int pCounter = 0;
- char * pch;
- while (fgets(input, 512, pToFile))
- {
- pch = strtok(input, " ");
- while (pch != NULL)
- {
- if (Ucomp == 0 && Pcomp == 0)
- {
- return;
- }
- if (pCounter == 0)
- {
- strcpy(usernames, pch);
- Ucomp = strcmp(inusername, usernames);
- }
- else if (pCounter == 1)
- {
- strcpy(passwords, pch);
- Pcomp = strcmp(inpassword, passwords);
- }
- else if (pCounter == 4)
- {
- pCounter = -1;
- }
- pch = strtok(NULL, " ");
- pCounter++;
- }
- if (Ucomp == 0 && Pcomp == 0)
- {
- return;
- }
- }
- }
- #include <stdio.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
- #include <fcntl.h>
- char reply[100], message[2000];
- int counter = 1;
- void error(char *msg)
- {
- perror(msg);
- exit(0);
- }
- int main(int argc, char *argv[])
- {
- int sockfd, portno, n, r;
- char buffer[256];
- struct sockaddr_in serv_addr;
- struct hostent *server;
- if (argc < 3)
- {
- fprintf(stderr,"usage %s hostname portn", argv[0]);
- exit(0);
- }
- portno = atoi(argv[2]);
- sockfd = socket(AF_INET, SOCK_STREAM, 0);
- if (sockfd < 0)
- {
- error("ERROR opening socket");
- }
- server = gethostbyname(argv[1]);
- if (server == NULL)
- {
- fprintf(stderr,"ERROR, no such hostn");
- exit(0);
- }
- bzero((char *) &serv_addr, sizeof(serv_addr));
- serv_addr.sin_family = AF_INET;
- bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length);
- serv_addr.sin_port = htons(portno);
- if (connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0)
- {
- error("ERROR connecting");
- }
- while(1)
- {
- recv(sockfd,reply,2000,0);
- puts(reply);
- if (counter == 3)
- {
- recv(sockfd, reply, 2000, 0);
- puts(reply);
- counter++;
- }
- else if (counter == 6)
- {
- recv(sockfd, reply, 2000, 0);
- puts(reply);
- counter++;
- }
- else if (counter == 9)
- {
- close(sockfd);
- break;
- }
- counter++;
- scanf("%s",message);
- send(sockfd,message,strlen(message),0);.
- memset(&reply[0], 0, sizeof(reply));
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement