блина, торможу я - помогите найти где лажанулся... -------------------------------- две структурки в хедере struct MYDATA { long size void* data; }; struct MYPACK{ long size; int some_fields; struct MYDATA content; }; -------------------------------- теперь клиентская сторона struct MYPACK *my_pack_p = (struct MYPACK*)malloc(sizeof(struct MYPACK)); my_pack_p->content.size = strlen("vasa"); my_pack_p->content.data = malloc(my_pack_p->content.size); strncpy((char*)my_pack_p->content.data, "vasa", my_pack_p->content.size); /*остальные поля инициализируем тоже*/ my_pack_p->size = sizeof(*my_pack_p) + my_pack_p->content.size; /*т.е. размер структуры плюс размер данных*/ потом пара десятков строк открытие сокета sd = socket(AF_INET,SOCK_DGRAM,0); и если все хорошо, то шлю my_pack_p на сервер rc = sendto(sd, msg, msg->size, 0, (struct sockaddr *) &remoteServAddr, sizeof(remoteServAddr)); все уходит "на ура" -------------------------------- теперь серверная сторона n = recvfrom(sd, msg, 65000, 0, (struct sockaddr *) &cliAddr, &cliLen); получаю мой пак в msg. n - равен msg->size (т.е. тому размеру, который я и послал). ВСЕ поля структуры получили те значения, которые я определил у клиента, ЗА ИСКЛЮЧЕНИЕМ СТРОКИ!!! строка всегда пустая. msg->content.size равен длине посланной строки а (char*)msg->content.data всегда пуста........ блина. и что я напортачил????