Здравствуйте, гость ( Вход | Регистрация )
|
OrSOn |
16.2.2010, 14:47
Сообщение
#1
|
|
Студент ![]() Группа: Участник Сообщений: 46 Регистрация: 8.12.2009 Пользователь №: 1289 Спасибо сказали: 0 раз(а) Репутация: 0
|
Всем добрый день! Столкнулся с довольно неприятной проблемой при работе с сокетами... Суть проблемы в следующем:
Имеется сервер и клиент, для общения используют сокеты. В некий момент времени клиент рушится (ну или связь падает, не суть важно), при этом сервер пытается что-то писать в сокет, что приводит к ошибке. Чтобы избежать этого, пробовал ввести проверку Так вот случаются ситуации, что проверка состояния проходит, а сразу после нее до начала проталкивания информации клиент падает и на tcpSocket->flush() снова вылетаю с ошибкой. Если кто сталкивался с подобным, подскажите, пожалуйста, как это можно обойти... Сообщение отредактировал OrSOn - 16.2.2010, 14:48 |
|
|
|
OrSOn Обрыв соединения QTcpSocket 16.2.2010, 14:47
sploid так в чем проблема? в том что сервер не знает запи... 16.2.2010, 17:29
SABROG Цитата(OrSOn @ 16.2.2010, 14:47) вылетаю ... 16.2.2010, 20:28
OrSOn Обработать ошибку нельзя - полностью прерывается д... 17.2.2010, 10:07
BRE Цитата(OrSOn @ 17.2.2010, 10:07) Обработа... 17.2.2010, 10:15
OrSOn while( tmpLength < file.size() ... 17.2.2010, 10:19
BRE Покажи как создается объект tcpSocket и какие сигн... 17.2.2010, 10:25
OrSOn Значит по порядку...
Объект создается нормально, н... 17.2.2010, 10:34
BRE Класс TcpSocket данные кеширует сам и отправляет и... 17.2.2010, 10:50
OrSOn Увы, но удаления объекта не происходит. Я уже дума... 17.2.2010, 11:02
BRE Ну так если ты хочешь отправлять синхронно, то поп... 17.2.2010, 11:39
OrSOn Боюсь, что так будет не лучше, ибо сложнее отследи... 17.2.2010, 11:45
BRE Как только ты записал последний кусок данных в сок... 17.2.2010, 12:11
OrSOn Попробовал, ничего не вышло... Вот код:
while... 17.2.2010, 14:50
BRE Набросал небольшой пример (клиент/сервер) для пере... 17.2.2010, 16:29
OrSOn Спасибо, сейчас гляну
Что-то я не совсем понял...... 17.2.2010, 17:12
BRE Цитата(OrSOn @ 17.2.2010, 17:12) int writ... 17.2.2010, 17:23
OrSOn Попробовал, но, увы, этот вариант врядли прокатит(... 18.2.2010, 13:15
BRE Цитата(OrSOn @ 18.2.2010, 13:15) Получает... 18.2.2010, 14:33
OrSOn ну не знаю, я запускал в дебаге твой пример, так т... 18.2.2010, 14:35
BRE Цитата(OrSOn @ 18.2.2010, 14:35) ну не зн... 18.2.2010, 18:53
OrSOn Да, что-то я тоже не заметил, спасибо, так работае... 19.2.2010, 11:50
BRE Покажи подробно (закопипасть сюда) класс этого пот... 19.2.2010, 11:59
OrSOn Ну все будет сложно сюда перенести, ибо много, я к... 19.2.2010, 12:15
SABROG connect( this, SIGNAL( readF() ... 19.2.2010, 12:25
OrSOn Сокет принадлежит главному потоку, объект NThread ... 19.2.2010, 12:31
SABROG Это не правильно. Соединение не должно быть прямым... 19.2.2010, 13:01
OrSOn У меня и так эта проверка стоит, согласен, можно у... 19.2.2010, 13:02
BRE Сокет принадлежит главному потоку, а должен принад... 19.2.2010, 13:12
SABROG Смотри что получается. Сокет находится в гуишном п... 19.2.2010, 13:19
OrSOn Изначально так и планировалось, чтобы на 1 запрос ... 19.2.2010, 13:26
SABROG Задача потока выполнять долгую операцию на фоне по... 19.2.2010, 13:45
OrSOn Вот я и думал об этом как раз, чтобы обрабатывающи... 19.2.2010, 13:48
BRE OrSOn, я скоро приеду домой и сброшу тебе пример а... 19.2.2010, 14:03
OrSOn Ок, спасибо, буду ждать) 19.2.2010, 14:05
SABROG Думаю вместо того, чтобы данные передавать с сигна... 19.2.2010, 14:37
BRE Цитата(SABROG @ 19.2.2010, 14:37) Думаю в... 19.2.2010, 15:06
SABROG Цитата(BRE @ 19.2.2010, 15:06) А если при... 19.2.2010, 16:19
BRE Цитата(SABROG @ 19.2.2010, 16:19) В общем... 19.2.2010, 16:53
OrSOn Спасибо, сейчас буду пробовать все посоветованное.... 24.2.2010, 10:30
OrSOn А такой вопрос еще... А можно ли рассматривать как... 24.2.2010, 16:10
SABROG Цитата(OrSOn @ 24.2.2010, 16:10) а затем ... 25.2.2010, 2:43
OrSOn А почему это я не смогу вернуть их в главный поток... 25.2.2010, 9:47
BRE Пока я вижу один момент с перетягиванием объектов ... 25.2.2010, 12:14
OrSOn Увы, при перемещении я не могу рвать коннект, в то... 25.2.2010, 12:44![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 27.12.2025, 21:27 |