Tony_K
Дата: 23.06.2005 11:23:36
Привет
У меня есть вьювер (на c#), посредством которого я смотрю данные из Cashe', связь осуществляется через сокет (C#) - порт (Cashe'), так вот:
я закрываю C#овскую прогу, соответственно сокет прибивается, но иногда получается такая фигня что при повторном открытии C# и создании сокета, в него присылаются те недосланные данные.
Выходит (я так думаю), что они зависают на Сервере (так как при перезапуске Cashe сервака они исчезают).
Собственно вопрос:
1. Можно ли как то принудительно очищать порт в Cashe.
2. Можно ли получить Session ID в сокетах С#, и по нему отсекать "не наши" данные (вопрос не по теме форума, но может кто то встречался с подобной проблеммое и хотелось бы узнать как ее решить. Пока у меня единственная мысль - это слать с данными SessionID генерируемый при установлении коннекта, но он мне не очень нравиться так как придется перелопачивать очень много исходного кода :()
Заранее спасибо
Valeriu
Дата: 23.06.2005 12:06:34
Я думаю здесь не досылается вся информация из буфера,
пробуйте перед закрытием сокета принудительно извлечь ее
коммандой W "data",! - т.е. восклицательным знаком, который соответствует
CR/LF.
Tony_K
Дата: 23.06.2005 13:29:33
ясненько, но дело еще и в том, что если C# отваливается (например дохнет коннект) то Cashe код остается неуправляемым и ничего сделать невозможно...
Tony_K
Дата: 23.06.2005 15:43:41
Maksim UM |
Важнее как запускается клиентский поток при подключении. Те как выглядит Job ... |
имедось ввиду это?
job run^tsclientw1:(:5:|TCP|7599:|TCP|7599)
а в tsclientw1 просто шлю в цикле
use 0:(::"M") Write $ZCVT("ТЕКСТ", "O", "UTF8"), !