URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4075
[ Назад ]

Исходное сообщение
"Проблема с recvd!!!!"

Отправлено ForceMan , 17-Мрт-05 14:10 
   Проблема с использованием recvd:  после вызова она возвращает очень большие отрицательные числа!! Решил использовать вместо нее read - таже ситуация.  Не могу понять в чем дело! Помогите!
Вот кусок кода, где я ее вызываю:

#define SIZE_BUFFER 10

// Function for receive/transfer data between server and client
void client_process(int index_client, int result)
{
    char *buffer = new char[SIZE_BUFFER];
    char *buffer2 = new char[15];
    bool flag = true;
    
    while(flag)
    {
    int n = 0;
    int recvd = 0;
    while(n<SIZE_BUFFER)
    {
       //recvd = recv(result, buffer+n,SIZE_BUFFER-n, 0 );
       recvd = read(result, buffer + n, SIZE_BUFFER-n);
       printf("\nrecvd=%i", &recvd);
       if(recvd < 0)
       {
        printf("\nError receiving\n");
        flag = false;
        break;
       }
       else if(recvd == 0)
        {
            printf("\nError connection");
            flag = false;
            break;
        }
        else
        {
            
            n+=recvd;
            printf("\nBUFFER:%s", buffer);
            printf("\nn=%d", &n);
        }    
        
    }  
    }
    
Вот результат попытки через телнет отправить несколько символов:
Connection closed by foreign host.
igor# telnet 192.168.1.5 110
Trying 192.168.1.5...
Connected to igor.bashstat.
Escape character is '^]'.
1234567890qwerty

А на сервере:

# ./anti

recvd=-1077937720
BUFFER:1234567890
n=-1077937716
recvd=-1077937720
BUFFER:qwerty
90


Содержание

Сообщения в этом обсуждении
"Проблема с recvd!!!!"
Отправлено ForceMan , 17-Мрт-05 14:11 
>   Проблема с использованием recvd:  после вызова она возвращает
>очень большие отрицательные числа!! Решил использовать вместо нее read - таже
>ситуация.  Не могу понять в чем дело! Помогите!

Сорри - за опечатку - RECV


"Проблема с recvd!!!!"
Отправлено MaximKuznetsov , 17-Мрт-05 19:47 
>>   Проблема с использованием recvd:  после вызова она возвращает
>>очень большие отрицательные числа!! Решил использовать вместо нее read - таже
>>ситуация.  Не могу понять в чем дело! Помогите!
>
> Сорри - за опечатку - RECV
У вас в коде :
int recvd;
...
printf("\nrecvd=%i", &recvd);
А какие еще числа Вы хотели получить ?