Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
goshavt Гость
|
Добавлено: Ср Ноя 20 2002 00:07 Заголовок сообщения: Соединение через сокет |
|
|
Нужно соединить два компа с помощью сокетов, по соединению передаются различные данные (сообщения) в разные моменты времени, может быть ни одного, а может и сразу много. Написал свой клас который это делает, но при передаче большого количества сообщений, сокет затыкается и освобождается через какой-то промежуток времени. Событие FD_WRITE обработано, но оно выскакивает не всегда, и как правило тогда когда надо его нет, а появляется позже. В чем лажа? |
|
Вернуться к началу |
|
|
butcher
Зарегистрирован: 18.04.2003 Сообщения: 467 Откуда: Киров
|
Добавлено: Ср Ноя 20 2002 05:22 Заголовок сообщения: Re: Соединение через сокет |
|
|
Для чего и где ты используешь FD_WRITE? На клиенте или сервере, и какой тип соединения используется? SOCK_DGRAM или SOCK_STREAM ? Скоре всего проблема в том что твой сокет блокируется. _________________ Нет ничего невозможного... |
|
Вернуться к началу |
|
|
goshavt Гость
|
Добавлено: Ср Ноя 20 2002 09:49 Заголовок сообщения: Re: Соединение через сокет |
|
|
Есть три типа сокетов: - сервер, который слушает(обрабатываестя только FD_ACCEPT; - клиент, который подключается(FD_CONNECT,FD_READ,FD_WRITE,FD_CLOSE,FD_OOB); - клиент, который создается сервером при подключении(FD_CONNECT,FD_READ,FD_WRITE,FD_CLOSE,FD_OOB); т ип соединения SOCK_STREAM nonblocking. При передаче выскакивает ошибка WSAEWOULDBLOCK, я её определяю и падаю в ожидание установки моего Eventa, который устанавливаю при срабатывание события FD_WRITE, но срабатывает таймаут, и я вываливаюсь с результатом ноль, а потом срабатывает событие FD_WRITE. Пробовал зацыклить или установить бесконечный таймаут, никакого толку. |
|
Вернуться к началу |
|
|
butcher
Зарегистрирован: 18.04.2003 Сообщения: 467 Откуда: Киров
|
Добавлено: Ср Ноя 20 2002 23:30 Заголовок сообщения: Re: Соединение через сокет |
|
|
Т.е. как я понял сокет блокируется при попытке записи в него? Если хочешь можешь послать на мыло исходник, только не большой по размеру, могет что подскажу... Просто тяжело так угадывать в чём там у тебя ошибка _________________ Нет ничего невозможного... |
|
Вернуться к началу |
|
|
|