Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<string.h>
- #include<sys/socket.h>
- #include<arpa/inet.h>
- #include<unistd.h>
- #define DEFAULT_BUFLEN 512
- #define DEFAULT_PORT 27015
- int socket_desc , client_sock , c , read_size;
- struct sockaddr_in server , client;
- char client_message[DEFAULT_BUFLEN];
- char username[] = "user";
- char password[] = "password";
- char succ[] = "success!";
- char fail[] = "failure!";
- char message1[DEFAULT_BUFLEN], message2[DEFAULT_BUFLEN];
- void login();
- int main(int argc , char *argv[])
- {
- login();
- if(read_size == 0)
- {
- puts("Client disconnected");
- fflush(stdout);
- }
- else if(read_size == -1)
- {
- perror("recv failed");
- }
- return 0;
- }
- void login(){
- socket_desc = socket(AF_INET , SOCK_STREAM , 0);
- if (socket_desc == -1)
- {
- printf("Could not create socket");
- }
- puts("Socket created");
- server.sin_family = AF_INET;
- server.sin_addr.s_addr = INADDR_ANY;
- server.sin_port = htons( DEFAULT_PORT );
- if( bind(socket_desc,(struct sockaddr *)&server , sizeof(server)) < 0)
- {
- perror("bind failed. Error");
- return;
- }
- puts("bind done");
- listen(socket_desc , 3);
- puts("Waiting for incoming connections...");
- c = sizeof(struct sockaddr_in);
- client_sock = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c);
- if (client_sock < 0)
- {
- perror("accept failed");
- return;
- }
- puts("Connection accepted");
- while(1)
- {
- memset(client_message,0,strlen(client_message));
- if((read_size=recv(client_sock , client_message , DEFAULT_BUFLEN , 0)) < 0){
- puts("recv failed");
- return;
- }
- strcpy(message1, client_message);
- if((read_size=recv(client_sock , client_message , DEFAULT_BUFLEN , 0)) < 0){
- puts("recv failed");
- return;
- }
- strcpy(message2, client_message);
- if((strcmp(message1, username)!=0) || (strcmp(message2, password)!=0)){
- if(send(client_sock, fail, strlen(fail), 0)<0)
- {
- puts("Send failed");
- return;
- }
- }
- else{
- if(send(client_sock, succ, strlen(succ), 0)<0)
- {
- puts("Send failed");
- return;
- }
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement