server client application - (i really need your help)

This is a discussion on server client application - (i really need your help) within the C Programming forums, part of the General Programming Boards category; Hello, I have developed a client server application using C. i have a list of usernames and a list of ...

  1. #1
    Registered User
    Join Date
    Mar 2008
    Posts
    1

    server client application - (i really need your help)

    Hello,

    I have developed a client server application using C.

    i have a list of usernames and a list of passwords in a text file. i need to be able to do 2 loops so i can send the usernames and the passwords to the server and get a response back. basically its a ftp force attack to find the correct username and password. i have written most of the code but i'm kind of strugling to finish it off and sort out the errors. this is a task we have to do for university. i have tried different books and websites and still can't sort out the errors. i really need your help.

    Any advice would be most helpfull

    Code:
    this is the client part:
    
    #include <stdio.h> /* for printf() and fprintf() */
    #include <sys/socket.h> /* for socket(), connect(), send(), and recv() */
    #include <arpa/inet.h> /* for sockaddr_in and inet_addr() */
    #include <stdlib.h> /* for atoi() and exit() */
    #include <string.h> /* for memset() */
    #include <unistd.h> /* for close() */
    
    #define BUFSIZE 4096 /* Size of receive buffer */
    
    void DieWithError(char *errorMessage); /* Error handling function */
    void handeltcpclient(int sock, char *argv[]); /* Server handling function */
    
    int main(int argc, char *argv[])
    {
    int sock; /* Socket descriptor */
    struct sockaddr_in echoServAddr; /* Echo server address */
    unsigned short echoServPort; /* Echo server port */
    char *servIP; /* Server IP address (dotted quad) */
    
    if ((argc < 2) || (argc > 3)) /* Test for correct number of arguments */
    {
    fprintf(stderr, "Usage: %s <Server IP> [<Port>]\n",argv[0]);
    exit(1);
    }
    
    servIP = argv[1]; /* First arg: server IP address (dotted quad) */
    
    if (argc == 3)
    echoServPort = atoi(argv[2]); /* Use given port, if any */
    else
    echoServPort = 21; /* 7 is the well-known port for the echo service */
    
    /* Create a reliable, stream socket using TCP */
    if ((sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
    DieWithError("socket() failed");
    
    /* Construct the server address structure */
    memset(&echoServAddr, 0, sizeof(echoServAddr)); /* Zero out structure */
    echoServAddr.sin_family = AF_INET; /* Internet address family */
    echoServAddr.sin_addr.s_addr = inet_addr(servIP); /* Server IP address */
    echoServAddr.sin_port = htons(echoServPort); /* Server port */
    
    /* Establish the connection to the echo server */
    if (connect(sock, (struct sockaddr *) &echoServAddr, sizeof(echoServAddr)) < 0)
    DieWithError("connect() failed");
    
    handeltcpclient(sock, argv);
    
    close(sock);
    }
    
    
    
    this is the handeltcpclient.c
    
    #include <stdio.h> /* for printf() and fprintf() */
    #include <string.h> /* for printf() and fprintf() */
    #include <sys/socket.h> /* for recv() and send() */
    #include <unistd.h> /* for close() */
    
    #define BUFSIZE 4096 /* Size of receive buffer */
    
    void DieWithError(char *errorMessage); /* Error handling function */
    char sendBuf[BUFSIZE]; /* Send Buffer */
    char rcvBuf[BUFSIZE];
    char rcvMsgSize[BUFSIZE];
    char srvBuf[BUFSIZE];
    char clntBuf[BUFSIZE];
    char USER[15];
    char PASS[15];
    FILE *fileuser;
    FILE *filepassword;
    int MsgSize;
    int result;
    char response[3];
    
    void handeltcpclient(int clntSocket)
    {
    
    
    /* Recieve message from client */
    memset(&rcvBuf,0,sizeof(rcvBuf));
    rcvMsgSize = RecieveMessage(clntSocket, &rcvBuf, sizeof(rcvBuf));
    
    /* Recieve Server Responses */
    memset (&clntBuf,0,sizeof(clntBuf));
    memset (&srvBuf,0,sizeof(srvBuf));
    MsgSize = RecieveMessage(clntSocket,&srvBuf, sizeof(srvBuf));
    
    printf("Recieved: %s" &srvBuf,rcvMsgSize);
    
    response = strncpy(&srvBuf, 3);
    result = strcmp( result, "230");
    if( result == 0)
    {
    sprintf(&clntBuf, "USER %s", USER);
    send(clntSocket, &clntBuf, strlen(clntBuf), 0)!= (strlen(clntBuf));
    DieWithError("send() sent a different number of bytes than expected");
    
    
    printf("Recieved: %s" &srvBuf,messageSize);
    
    
    /* Opening username.txt to selecting USER */
    
    if (fileuser = (fopen ("usernames.txt", "r")) ==NULL)
    {
    printf("Error opening file.\n");
    return 1;
    }
    
    else {
    printf ("File opened.\n");
    while (fgets(USER, 15, file != NULL))
    {
    printf("%s",USER);
    }
    
    /*send USER to server*/
    sprintf(clntBuf, "USER %s", USER);
    
    if ( send(clntSocket, &clntBuf, strlen(clntBuf), 0)!= (strlen(clntBuf)))
    DieWithError("send() sent a different number of bytes than expected");
    
    printf("The attemped username was: %s\n");
    return 0;
    
    /* Recieve message from client */
    memset(&rcvBuf,0,sizeof(rcvBuf));
    rcvMsgSize = RecieveMessage(clntSocket, &rcvBuf, sizeof(rcvBuf));
    
    response = strncpy(&srvBuf, 3);
    result = strcmp( result, "331");
    if( result == 0)
    {
    sprintf(&clntBuf, "PASS %s", PASS);
    send(clntSocket, &clntBuf, strlen(clntBuf), 0)!= (strlen(clntBuf));
    DieWithError("send() sent a different number of bytes than expected");
    
    result = strncpy(&srvBuf, 3);
    result = strcmp(result, "230");
    
    if (result == 0)
    {
    printf("successfully connected.\n");
    {
    sucess ++;
    }
    
    
    /* Opening passwords.txt to selecting PASS */
    (
    if (filepassword = (fopen ("passwords.txt", "r"))==NULL)
    {
    printf("Error opening file.\n");
    return 1;
    }
    (
    else {
    printf ("File opened.\n");
    while (fgets(PASS, 15,file)!=NULL)
    {
    printf("%s",PASS);
    }
    }
    /*send PASS to server*/
    sprintf(clntBuf, "PASS %s", PASS);
    
    if ( send(clntSocket, &clntBuf, strlen(clntBuf), 0) != (strlen(clntBuf)))
    DieWithError("send() sent a different number of bytes than expected");
    
    printf("Closing file.\n");
    fclose(file);
    printf("The attempted password was: %s\n");
    return 0;
    
    }
    
    int RecieveMessage (int s,char *buf, int maxLen)
    {
    int received = 0;
    int rv = 0;
    rv = recv(s, buf+received, 5, 0);
    while ((received < maxLen) && (rv > 0) && *(buf+received) != '\n')
    {
    received += rv;
    rv = recv(s, buf+received, 5, 0);
    }
    if (rv < 0)
    {
    DieWithError("revc() failed");
    }
    return received;
    }
    
    /*end*/
    
    this is the diewitherror.c (error handling file)
    
    #include <stdio.h> /* for perror() */
    #include <stdlib.h> /* for exit() */
    
    void DieWithError(char *errorMessage)
    {
    perror(errorMessage);
    exit(1);
    }

  2. #2
    uint64_t...think positive xuftugulus's Avatar
    Join Date
    Feb 2008
    Location
    Pacem
    Posts
    355
    I don't think this forum would support for such code, even if it was for the university.
    Code:
    ...
        goto johny_walker_red_label;
    johny_walker_blue_label: exit(-149$);
    johny_walker_red_label : exit( -22$);
    A typical example of ...cheap programming practices.

  3. #3
    Super Moderator VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,596
    I don't see the errors you are having trouble with. Perhaps posting the errors you are having trouble with would help us assist you.

  4. #4
    CSharpener vart's Avatar
    Join Date
    Oct 2006
    Location
    Rishon LeZion, Israel
    Posts
    6,484
    indentetion never hurts.
    The first 90% of a project takes 90% of the time,
    the last 10% takes the other 90% of the time.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Problem with client server program...
    By cprogczar in forum C Programming
    Replies: 2
    Last Post: 04-21-2009, 07:56 PM
  2. Client/server problem; server either stops receiving data or client stops sending
    By robot-ic in forum Networking/Device Communication
    Replies: 10
    Last Post: 02-16-2009, 10:45 AM
  3. Server Client Issues
    By Coder87C in forum Networking/Device Communication
    Replies: 1
    Last Post: 07-23-2005, 12:30 PM
  4. Unicode vurses Non Unicode client server application with winsock2 query?
    By dp_76 in forum Networking/Device Communication
    Replies: 0
    Last Post: 05-16-2005, 07:26 AM
  5. Client timed-out once on connect(), can never connect() again
    By registering in forum Networking/Device Communication
    Replies: 6
    Last Post: 10-28-2003, 02:46 PM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21