Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];

Вниз

события в TCustomWinSocket   Найти похожие ветки 

 
Vitalik   (2003-10-16 18:51) [0]

Здравствуйте!
Помогите пожалуйста решить проблему:

Я использую TServerSocket. В процессе работы к нему подключаются клиенты. У TServerSocket есть свойство Socket которое содержит массив активных соединений:

TServerSocket.Socket.Connections. Тип элементов массива - TCustomWinSocket. У этого типа есть два события OnErrorEvent и OnSocketEvent. Ну собственно, и первый вопрос. Правильно ли я понимаю, что эти события происходят, когда с конкретным соединением, с одним из клиентов из массива TServerSocket.Socket.Connections происходит либо какое-то действие (OnSocketEvent), либо ошибка (OnErrorEvent)?

И второй вопрос (а если ответ на первый - "да", то это уже не вопрос, а проблема :) )
Я отлавливаю у TServerSocket событие OnClientConnect, в котором получаю указатель на новый элемент (Socket) из массива TServerSocket.Socket.Connections, который добавляется автоматически (или я и тут ошибаюсь, и я на самом деле получаю что-то другое?). Затем для этого нового соединения я в параметр Data добавляю экземпляр одного своего класса и пытаюсь установить у этого нового Socketа свои обработчики события OnErrorEvent и OnSocketEvent.

Ну примерно так:
Fsocket.OnErrorEvent:=MySocketError;
FSocket.OnSocketEvent:=MySocketevent;

Вот здесь почему-то и происходит Exception AccessViolation...

Вот мне было бы интересно узнать почему так происходит и если я в чём-то не прав, то в чём?
Спасибо!


 
Digitman   (2003-10-17 13:47) [1]


> Правильно ли я понимаю, что эти события происходят, когда
> с конкретным соединением, с одним из клиентов из массива
> TServerSocket.Socket.Connections происходит либо какое-то
> действие (OnSocketEvent), либо ошибка (OnErrorEvent)?


правильно.


> Я отлавливаю у TServerSocket событие OnClientConnect, в
> котором получаю указатель на новый элемент (Socket) из массива
> TServerSocket.Socket.Connections, который добавляется автоматически
> (или я и тут ошибаюсь, и я на самом деле получаю что-то
> другое?).


нет, не ошибаешься. именно так и есть.


> пытаюсь установить у этого нового Socketа свои обработчики
> события OnErrorEvent и OnSocketEvent.


может, это в ряде случаев и оправдено, но гораздо проще всего один раз (напимер, перед активизацией сервера) назначить общие обработчики событий компонента TServerSocket. Точно так же как ты это делаешь с OnClientConnect

В момент когда в транспортной петле соединения сервера с каким-либо его клиентом происходят какие-то события, будет вызван обработчик соответствующего события компонента TServerSocket, и факт.параметр Socket: TCustomWinSocket процедуры-обработчика укажет, к какому именно клиенту относится это событие



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
1-36705
Artog
2003-12-02 15:17
2003.12.12
динамический массив


1-36747
Urvin
2003-12-01 18:10
2003.12.12
Свой Курсор


1-36596
Фагот
2003-12-01 15:54
2003.12.12
DateEdit комонент


3-36529
Alex-kosmonavt
2003-11-21 12:50
2003.12.12
Отображение запроса


7-36874
Серж
2003-10-07 18:33
2003.12.12
Получить путь к выполняемой программе





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский