Re: Отказ работы socket API
От: Irokez  
Дата: 08.02.05 18:15
Оценка:
Здравствуйте, Ketsokal, Вы писали:

Как всего много, ну если уж подходить к проблемам клиент серверных приложений, то мое мнение, что на каждое соединение заводить поток, слишком расточительно для систмеы.
Есть вариант использования либо двух потоков (один на соединение, второй на обработку запросов от клиентов), либо реализовывать через порты завершения. Но это так отступление.

Ниже чисто предложения, возможно что-то окажеться лишним.

1) проще обрабытвать состояния сокетов, через select.
2) Перед приемом сообщения, даже в случае срабатываняи события FD_READ, попробуйте прочитать количество байт в буфере приема getsockopt.
3) Перед отправкой сообщения, пробывать отправлять токо тогда, когда есть событие FD_SEND.
4) В асинхронной приемопередаче есть ситуация, когда сокет выкидывает ошибку, не помню код, но суть в том, что данные не могут быть отправлены немедленно, небходимо подождать и повторить попытку.
5) Ну и на всякий случай проверить не убивается ли где стэк, не пшиеться ли в NULL.

А ваще еслиб глянуть на кусок кода потоков, былоб лучше
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.