Зависание данных в портах

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 код остается неуправляемым и ничего сделать невозможно...
Valeriu
Дата: 23.06.2005 14:03:21
Ну здесь вопрос конечно сложнее...
Я бы посоветовал, но не знаю поможет ли это ?
А если повторно конект осуществлять через другой порт и
попробовать что-то изменить...
Maksim UM
Дата: 23.06.2005 14:29:14
Какая версия Cache?
Как запускается серверный поток (с какими флагами)
в Cache?
Пример рабочего сервера есть:
http://karataev.nm.ru/cache/mdapi.html
Tony_K
Дата: 23.06.2005 15:08:08
Valeriu
Ну здесь вопрос конечно сложнее...
Я бы посоветовал, но не знаю поможет ли это ?
А если повторно конект осуществлять через другой порт и
попробовать что-то изменить...

другой нельзя, настройки в ини файле :( и менять нельзя
Tony_K
Дата: 23.06.2005 15:11:08
Maksim UM
Какая версия Cache?
Как запускается серверный поток (с какими флагами)
в Cache?
Пример рабочего сервера есть:
http://karataev.nm.ru/cache/mdapi.html

порт создаю так

open "|TCP|7599":(:TcpIPPort:"MAT"::$C(13)):20

Build: Caché v5.0.14 (5702U-5702)
Maksim UM
Дата: 23.06.2005 15:13:19
Важнее как запускается клиентский поток при
подключении.
Те как выглядит Job ...
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"), !
Maksim UM
Дата: 23.06.2005 16:11:03
Tony_K
имедось ввиду это?

Да

Tony_K
job run^tsclientw1:(:5:|TCP|7599:|TCP|7599)

Можно попробовать просто
job run^tsclientw1:(:5)
а в теле клиента
Set dev=$ZU(53)