Вопрос Ответ
struct FLAP
{
  unsigned char  m_id; //!< идентификатор (всегда равен 0x2A)
  unsigned char  m_channel; //!< номер канала
  unsigned short m_seqNumber; //!< порядковый номер пакета
  unsigned short m_size; //!< размер пакета
}; 

При чтении в эту структуру следующего дампа: 2a 01 54 6c 00 04 в поле “размер пакета” было не 4 а 1024. Т.е. два байта были переставлены местами. Почему?

В архитектуре х86 в памяти байты поменены местами. ntohs как раз для этого случая.
Можно ли перевести сокет из блокирующего в неблокирующий в процессе его работы, когда уже произошел connect
    
bool setAsync(int h,bool isAsync)
{
    int fl=fcntl(h,F_GETFL);

    if(isAsync)
      fl |= O_NONBLOCK;
    else
      fl &= ~O_NONBLOCK;

    return 0==fcntl(h,F_SETFL,fl);
}
Что будет, если я в конструктор к string дам const char * без нуля в конце? <octofox> ж… будет, прости господи для таких случаев есть std::string(Iterator begin, Iterator end)
Как выполнить disconnect? Всё банальное просто: man 2 shutdown
Можно ли закрытый сокет открыть заново, вызвав connect на другой ip:port? Опытным путем полуил что нет: connect: : Transport endpoint is already connected