Непонятно почему recv возвращает 0.
Очень нужна помощь, вопрос такой :
Создаю сокет (TCP), соединяюсь с другим сокетом, неблокирующий режим не выставляю.
Начинаю ждать данных вызовом recv, сначала все хорошо, но после считывания первой порции и до прихода второй recv начинает сразу же после вызова возвращать 0 (хотя должен по идее ждать прихода данных).
Как быть? (Select пробовал, тоже не помогает).
Заранее спасибо!!
по чьей идее он должен ждать прихода данных? по вашей? код в студию. подозреваю - однократного чтения при помощи recv для получения данных НЕДОСТАТОЧНО.
ConSocket = socket(PF_INET,SOCK_STREAM,0);
info.sin_family = AF_INET;
info.sin_port = htons(port);
inet_pton(AF_INET,address,&info.sin_addr);
bind(ConSocket,(struct sockaddr *)&info,sizeof(info));
listen(ConSocket,0);
fd = accept(ConSocket,(struct sockaddr *)&info,(socklen_t *)&len);
close(ConSocket);
//прием
rcv = recv(fd,RealFill,(buf + TCP_SOCKET_BUF_SIZE - RealFill),0);
после первого появления данных и их считывания recv потом каждый раз будет возвращать 0.
Я все понял!=) Почувствовал себя идиотом) Другая сторона закрывала сокет!
[LEFT]А вобще на всякий случай :