Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Непонятно почему recv возвращает 0.

11K
21 мая 2007 года
Skol
27 / / 14.07.2006
Здравствуйте!
Очень нужна помощь, вопрос такой :
Создаю сокет (TCP), соединяюсь с другим сокетом, неблокирующий режим не выставляю.
Начинаю ждать данных вызовом recv, сначала все хорошо, но после считывания первой порции и до прихода второй recv начинает сразу же после вызова возвращать 0 (хотя должен по идее ждать прихода данных).
Как быть? (Select пробовал, тоже не помогает).

Заранее спасибо!!
2
21 мая 2007 года
squirL
5.6K / / 13.08.2003
по чьей идее он должен ждать прихода данных? по вашей? код в студию. подозреваю - однократного чтения при помощи recv для получения данных НЕДОСТАТОЧНО.
11K
21 мая 2007 года
Skol
27 / / 14.07.2006
//создание
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.
11K
21 мая 2007 года
Skol
27 / / 14.07.2006
Я все понял!=) Почувствовал себя идиотом) Другая сторона закрывала сокет!
502
23 мая 2007 года
Jail
550 / / 30.01.2007
[LEFT]А вобще на всякий случай :
http://www.proklondike.com/contentview.php?content=27
[/LEFT]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог