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