Thread: Verständnis Problem

  1. #1
    Registered User
    Join Date
    Mar 2010
    Posts
    3

    Verständnis Problem

    Hallo, ich verstehe diese Zeile nicht, durch das %16 denkt man
    :
    Code:
      if(((i%16)==15) || (i == length-1)) {
    
            for (  j = 0; j < length; j++)
    wieso i%16 rest 15 oder length-1 und dann das mit der j for schleife kann das wer villt versträndlicher erklären



    Hier mal der ganze Code:

    simple_server.h

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <arpa/inet.h>
    #include "hacking.h"
    
    #define PORT 7790
    
    int
    main(void)
    {
    
    int sockfd, new_sockfd;
    struct sockaddr_in host_addr, client_addr;
    int recv_length=1, yes=1;
    socklen_t sin_size;
    char buffer[1024];
    
    if((sockfd=(PF_INET, SOCK_STREAM, 0))==-1)
    perror("in socket");
    
    if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int))==-1)
    perror("in setting options");
    
    host_addr.sin_family = AF_INET;
    host_addr.sin_port = htons(PORT);
    host_addr.sin_addr.s_addr = 0;
    memset(&(host_addr.sin_zero), '0', 8);
     
    
    
    if(bind(sockfd, (struct sockaddr *)&host_addr, sizeof(struct sockaddr))==-1)
    perror("in binding");
    
    if(listen(sockfd, 5)==-1)
    perror("in listening on socket");
    
    while(1){
    
    sin_size = sizeof(struct sockaddr_in);
    new_sockfd = accept(sockfd, (struct sockaddr *) &client_addr, &sin_size);
    if(new_sockfd == -1)
    perror("accepting connection");
    
    printf("server got connection from %s prot %d\n", inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port));
    
    send(new_sockfd, "Hello, world!\n", 13,0);
    recv_length = recv(new_sockfd,&buffer,1024,0);
    
    while (recv_length > 0) {
        printf( "RECV: %d bytes\n", recv_length );
        dump(buffer, recv_length);
        recv_length = recv(new_sockfd, &buffer, 1024, 0);
    
    }
    close(new_sockfd);
    }
    return 0;
    }
    hacking.h :

    Code:
    void dump(const unsigned char *data_buffer, const unsigned int length) {
        unsigned char byte;
        unsigned int i,j;
        for ( i = 0; i < length; i++)
            {
            byte = data_buffer[i];
            printf( "%02x ", data_buffer[i]);
            if(((i%16)==15) || (i == length-1)) {
    
            for (  j = 0; j < length; j++)
                    printf ("    ");
            printf( "|  " );
            for ( j =(i-(i%16)); j <= i; j++)
                    {
                        byte = data_buffer[j];
                if((byte > 31) && (byte < 127))
                printf( "%c", byte );
                else
                    printf( "." );
       
                    }
            printf( "\n" );
    }
    }
    }

  2. #2
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,659
    Asked already -> http://cboard.cprogramming.com/linux...s-problem.html
    And by the way, this is an English speaking board.
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Need help understanding a problem
    By dnguyen1022 in forum C++ Programming
    Replies: 2
    Last Post: 04-29-2009, 04:21 PM
  2. Memory problem with Borland C 3.1
    By AZ1699 in forum C Programming
    Replies: 16
    Last Post: 11-16-2007, 11:22 AM
  3. Someone having same problem with Code Block?
    By ofayto in forum C++ Programming
    Replies: 1
    Last Post: 07-12-2007, 08:38 AM
  4. A question related to strcmp
    By meili100 in forum C++ Programming
    Replies: 6
    Last Post: 07-07-2007, 02:51 PM
  5. WS_POPUP, continuation of old problem
    By blurrymadness in forum Windows Programming
    Replies: 1
    Last Post: 04-20-2007, 06:54 PM