| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > TClient & Tserver sockets |
| Автор: coolikov 10.5.2006, 10:33 | ||
| Здраствуйте у меня проблемка : Пищу сетевую общалку. нужно клиентом отправить текст (socket.sendtext) списку серверов(). (типа сообщить всем что он онлайн) Пробую так :
но коннекта с хостом не происходит пробовал ставить задержку между : ClientSocket1.Active := True; и ClientSocket1.Active := False; но скоко не ставил(по врем. даже бесконечный цикл) конект так и не происходит почему мож че не так делаю???????? мож есть другой способ???? мож можно просто как-то пропинговать запущены ли на удаленных компах ТServerSocket"ы?????? помогите плизз!!!!! ______________________________ в программе есть и клиент и сервер. (т.е общего сервера для всех нет) |
| Автор: Демо 10.5.2006, 10:38 | ||
Для твоего случая:
|
| Автор: Matematik 10.5.2006, 10:41 |
| Ты работаешь с неблокирующим сокетом. http://www.delphimaster.ru/articles/sockets/index.html http://www.delphimaster.ru/articles/socksrv/index.html |
| Автор: coolikov 10.5.2006, 10:53 |
| to Демо а если сокета нет то программа просто стопиться и все!!!! А мне надо узнать есть ли он |
| Автор: Romikgy 10.5.2006, 11:00 |
| Имхо создавай сокеты динамически, таких траблов не будет |
| Автор: Демо 10.5.2006, 11:29 |
Ну так тогда делай правильно. Используй обработку событий OnConnect и OnError. |
| Автор: coolikov 10.5.2006, 11:31 | ||
| to Romikgy Ты имееш ввиду что можно сервер сделать статич а при каждой посылке заново дин создавать сокет(клиентский) и приконекчивать к нужному серверу потом его дестроить А какие преимушества Обьясни плизз Добавлено @ 11:46 to Демо да при попытке коннекта к несущ сокету у меня возникает OnError но как от него перейти к сканированию следующего компа т.е. к коду в процедуре :
З.Ы. Понимаю что вопросы дурацкие, но ведь без вашей помоши не разобраться |
| Автор: Romikgy 10.5.2006, 12:06 |
Все настройки создаются заново + ждать не нужно сокет одуплится, будет что т наподобии хттп соединения, создался, соединился , передал сообщение, отключился, разрушился |
| Автор: coolikov 4.7.2006, 14:50 |
| Вот наконец то снова добрался до своей программки (лучше поздно чем никогда) to Romikgy Плиззз обьяни или приведи пример(хоть схематический) как при динамическом криэйте сокета сразу понять запушен ли на хосте, к которому он пытаеться коннектиться, сервер? |
| Автор: _hunter 4.7.2006, 15:52 |
| сразу -- никак. делается это попыткой подключиться: получилось -- значит запущен, не получилось -- значит нет. |
| Автор: coolikov 4.7.2006, 16:08 | ||||||||
| но тогда не вижу смысла в динамическом создании сокетов ныне думаю что отсылать сообщение типа "онлайн" (как я писал в начале топиеа смысла нет) мне нужно просто попытаться приконнектиться клиентом программы к списку серверов и тот серв, к которому можно приконектиться, пометить как онлайн а тот,к которому не выйдет, как оффлайн. проверка эта(пингование списка серверов) должна происходить постоянно в фоновом режиме (смысл в том что бы показать пользователю кто в онлайн а кто нет) вообщем счас есть такая проблема : есть код:
А ВОТ КОД ОБРАБОТЧИКА СОБЫТИЯ ОШИБКИ:
смысл задумки таков --- коннектимся к соккету пока не приконнектимся или не произойдет ошибка в это время обрабатывая сообщения сиситемы потом отвел эту процедуру pingall в отдельную нить(использовал класс Tthread) но убрать
не могу тогда процесс висне и к следующему компу не переходит!!!! странно процесс та отдельный зачем ему Application.ProcessMessages и следующий вопрос вооще не пойму но в таком виде (с Application.ProcessMessages и нитью ) сканирование проходит ток один раз а в послендующий зацикливаеться на
!!!! З.Ы, я уже в шоке, но всетаки надеюсь что с ВАШЕЙ помощью все получиться |