проблема с вызовом read

у меня есть структура данных

enum Type
{
    INT,
    VECTOR
};

typedef struct typeless
{
    Type type;
    void *value;

    typeless()  
    {   
        value = new void*;
    }   
    
    void setValue(void *val, Type typ)      
    {
        value = val;
        type = typ;
    }

    ~typeless()
    {
        delete value;
    }
}typeless;

на программе клиента я создаю переменную этого типа присваиваю нужное мне значение и через write отправляю на дескриптор сокета сервера. после того как сервер прочитал значение :

if (0 > (ReadBytes = read(pd[i], &messangeFrom[i], sizeof(&messangeFrom[i]))))
                {
                    printf("ошибка чтения данных:%d\n", errno);
                    return -1;
                }else if(ReadBytes > 0)
                {
                    switch(messangeFrom[i].type)
                    {
                    case INT:
                        key = *static_cast<int*>(messangeFrom[i].value);
                        printf("сообщение от игрока:%d\n", key);
                        switch (key)
                        {
                        default:
                            break;
                        }
                        
                    case VECTOR:
                    default:
                        break;
                    }

сервер получает не нужное значение а какую то случайную цифру. кто то знает почему так и как это поченить?


Ответы (0 шт):