1 2 memset(local_buffer, 0, sizeof(local_buffer)); 3 /* Read from socket (This is a sample, must be more complex) **********/ 4 ret = recv(sock_tcp, local_buffer, 4, MSG_PEEK); 5 if( ret != 4 ){ printf("Error in recv(PEEK)\n");return( -1 );}; 6 memcpy(&tempo, local_buffer, sizeof(uint32_t)); /* get lenght PDU */ 7 local_buffer_len = ntohl( tempo ); 8 ret = recv(sock_tcp, local_buffer, local_buffer_len, 0); 9 if( ret != local_buffer_len ){ 10 printf("Error in recv(%d bytes)\n", local_buffer_len);return( -1 );}; 11 /* Print Buffer *******************************************************/ 12 memset(print_buffer, 0, sizeof(print_buffer)); 13 ret = smpp34_dumpBuf(print_buffer, sizeof(print_buffer), 14 local_buffer, local_buffer_len); 15 if( ret != 0 ){ printf("Error in smpp34_dumpBuf():%d:\n%s\n", 16 smpp34_errno, smpp34_strerror ); return( -1 ); }; 17 printf("-----------------------------------------------------------\n"); 18 printf("RECEIVE BUFFER \n%s\n", print_buffer); 19 /* unpack PDU *********************************************************/ 20 ret = smpp34_unpack2((void*)&res, local_buffer, local_buffer_len); 21 if( ret != 0){ printf( "Error in smpp34_unpack():%d:%s\n", 22 smpp34_errno, smpp34_strerror); return( -1 ); }; 23 /* Print PDU **********************************************************/ 24 memset(print_buffer, 0, sizeof(print_buffer)); 25 ret = smpp34_dumpPdu2(print_buffer, sizeof(print_buffer), (void*)&res); 26 if( ret != 0){ printf("Error in smpp34_dumpPdu():%d:\n%s\n", 27 smpp34_errno, smpp34_strerror); return( -1 ); }; 28 printf("RECEIVE PDU \n%s\n", print_buffer); 29 30