передача целого числа через сокет в C

Как лучше всего передать int через сокет в C?
Пока что я делаю:

int n = 4;
int tmp = htonl(n);
write(socket, &tmp, sizeof(tmp));

и

int tmp,n;
read(socket, &tmp, sizeof(tmp));
n = ntohl(tmp);

Однако полученное целое число иногда равно 0. Не всегда, но, скажем, 2 раза из 5. Это никогда не будет какое-то другое значение, всегда 0. Почему?

ОБНОВЛЕНИЕ: Возвращаемое значение при чтении равно -1, а ошибка:

Resource temporarily unavailable
8
задан Maggie 4 February 2012 в 11:17
поделиться