LINUX.ORG.RU

socket-ы пара вопросов как правильнее ?


0

0

Вот написал клиента и сервер !
Работает так клиент приконнектился к серверу и коннект не рвет!
Как только юзвер нажмет на кнопки данные полетели!

Потом порылся в исходниках других прог, и заметил что у многих
делается нетак!
Когда юзвер жмет на кнопки то происходит коннект пересылка данных
потом сокеты закрываются !

Собственно САБЖ как правильнее!
PS:
Сейчас пишу клиента к mysql и вот думаю как лучше ?
Уже видел что и к mysql тоже самое на запрос соединение - данные - сокет закрылся!
Но ведь долго это соединятся и закрыватся !

И еще вопрос когда рвем связь(физически) то сокет висит и работает!
Тоесть при записи в сокет SIGPIPE я неполучаю -- как с этим боротся ?
можно конечно сказать ежели в течении N-секунд нет ответа то абзац со связью - еще есть варианты ?

Спасибо с tcp_keepalive_time и tcp_keepalive_probes
разобрался :-)

Теперь первая чась вопроса почему соединение рвут сразу
после передачи данных ? даже в демонах кде точно известно
что еще нераз данные полетят !

Первое что я нашел это безопасность!
Второе меньше гемороя при невозможности соединится!

Еще варианты ???? help

Aleks_IZA
() автор топика
Ответ на: комментарий от Aleks_IZA

Возможно, так пытаются сэкономить ресурсы сервера. При такой схеме требуется меньше процессов, меньше одновременно открытых сокетов. BTW, а не проще ли спросить у разработчиков демонов, зачем они так поступают?

anonymous
()

Обе схемы имеютт право на существование, но по собственному опыту скажу, что если приложение предпологается использовать для инета и на достаточно слабом канале схема connect/keepalive/close более стабильна и менее ресурсоемка для серверной части. Однако есть проблемы с реализацией транзакционных приложений и поддержки пользовательских сессий.

nevera
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.