Конференция "Начинающим" » открыт ли порт? [D6, WinXP]
 
  • Артем (24.04.09 21:51) [0]
    Добрый вечер!
    Проблема следующая: нужно определить, запущен ли сервер приложения. Как проверить, открыт на сервере порт или нет?
    Использую TClientSocket. По Open вылетает исключение.
  • Сергей М. © (24.04.09 21:56) [1]
    Каким рейсом ?
  • Артем (24.04.09 21:57) [2]
    ESocketError)))
  • Сергей М. © (24.04.09 21:58) [3]
    Оч содержательная информация о рейсе..
  • Сергей М. © (24.04.09 22:01) [4]

    > Как проверить, открыт на сервере порт


    Ну и за каким лешим знать, что скрывается за этим портом - сервер приложений, или сервер отложений, или сервер заложений, или .. ?)

    Кому это интересно, подумай ?)
  • Артем (24.04.09 22:02) [5]
    ...извините...
    иключение что-то вроде "удаленный компьютер отверг соединение" из-за того, что сервер не запущен. Он действительно не запущен.
    А нужно проверять, запущен ли, а если запущен - подключаться.
  • Артем (24.04.09 22:04) [6]
    объясню подробнее.
    имеются 2 программы.
    клиент запущен постоянно.
    когда стартует сервер, нужно чтобы клиент это увидел и передал другому приложению информацию. вотъ.
  • Сергей М. © (24.04.09 22:05) [7]

    > сервер не запущен. Он действительно не запущен


    > нужно проверять, запущен ли


    ты с головой вообще дружишь ?

    Тебе же это самое "что-то вроде" дает понять - НЕ "запущен" !

    Что еще проверять-то ? Уже ведь получил отлуп)..
  • Сергей М. © (24.04.09 22:07) [8]

    > нужно чтобы клиент это увидел и передал другому приложению
    > информацию. вотъ


    Понял.

    Картина маслом:

    - Пацаны ! В чипок водку завезли ! Беги быстрей, а то кончится !

    ))
  • Артем (24.04.09 22:10) [9]
    ...не правильно выразился (опять).
    другое приложение - это и есть сервер, который стартовал.
  • Сергей М. © (24.04.09 22:14) [10]

    > Артем   (24.04.09 22:10) [9]


    Вот и трижды подумай, прежде чем "выражаться")


    > это и есть сервер, который стартовал.


    И ?

    ESocketError - это класс исключения, не более того.
    О состоянии "стартованности" сервера КЛАСС не может сказать НИЧЕГО
  • Артем (24.04.09 22:17) [11]
    А как обработать это исключение, чтобы клиент время от времени проверял, готов ли сервер, а по готовности делал, что ему нужно?
  • Сергей М. © (24.04.09 22:40) [12]
    А ты его, исключение-то это, как "поймал" ?
  • Артем (25.04.09 01:02) [13]
    сообщение выскакивает с кодом ошибки.
    try
    except как-то не помогает...
  • kami © (25.04.09 01:25) [14]
    > [13] Артем   (25.04.09 01:02)
    > try
    > except как-то не помогает

    Они и не помогут в ctNonBlocking (с Blocking не работал, не знаю).

    > сообщение выскакивает с кодом ошибки

    Следующий закономерный вопрос будет: "Код ошибки значения, конечно, не имеет?"
    Есть такое событие у TClientSocket - OnError. В нем можно (и нужно) узнавать и обрабатывать код возникшей ошибки. Полезно так же нажать F1 и почитать, что же это событие из себя представляет.
    Как говорил Сергей М. © в какой-то ветке (ссылку не дам, давно было), минимальный код обработки ошибки должен состоять из:
    ErrorCode:=0; // это если нужно не пускать ошибку "выше", а вот разобраться, что за ошибка нужно ДО этого.
    Socket.Close



    Что за ошибка возникла, и как после нее жить, можно узнать на http://msdn.microsoft.com/en-us/library/ms740668.aspx
  • Артем (25.04.09 11:18) [15]
    Огромное спасибо, помогло....
  • Tonick2001 © (21.01.11 19:23) [16]
    Можно подробнее ErrorCode:=0 это что? от куда брать эту переменную?
  • Anatoly Podgoretsky © (21.01.11 21:42) [17]
    > Артем  (24.04.2009 21:51:00)  [0]

    Это такое сообщение "Вылетаю, встречайте завтра"
  • Anatoly Podgoretsky © (21.01.11 21:43) [18]
    > Артем  (24.04.2009 22:02:05)  [5]

    Тогда порт открыт.
  • Anatoly Podgoretsky © (21.01.11 21:44) [19]
    > Сергей М.  (24.04.2009 22:05:07)  [7]

    Вообще то запущен, но автор персона нон грата.
  • Anatoly Podgoretsky © (21.01.11 21:45) [20]
    > Артем  (24.04.2009 22:10:09)  [9]

    Думай еще.
  • Игорь Шевченко © (21.01.11 23:42) [21]
    Anatoly Podgoretsky ©   (21.01.11 21:42) [17]

    Некрофил
  • Германн © (21.01.11 23:45) [22]

    > Anatoly Podgoretsky ©   (21.01.11 21:45) [20]
    >
    > > Артем  (24.04.2009 22:10:09)  [9]
    >


    > Думай еще.

    Почти 2 года уже думает. Считаешь мало?
  • Anatoly Podgoretsky © (21.01.11 23:51) [23]
    Я настучу, это Tonick2001 виноват, он трупа полюбил.
  • Anatoly Podgoretsky © (22.01.11 00:25) [24]
    > Германн  (21.01.2011 23:45:22)  [22]

    Не виновая я, он сам пришел.
  • Германн © (22.01.11 01:37) [25]

    > Anatoly Podgoretsky ©   (22.01.11 00:25) [24]
    >
    > > Германн  (21.01.2011 23:45:22)  [22]
    >
    > Не виновая я, он сам пришел.

    Твой клиент плохо показывает даты сообщений или ты сам на них не обращаешь внимания?
    Первое требует доработки. Добавь это в todo-list.
    Второе ничего не требует. Мы и так тебя нормально воспринимаем.
    :)
 
Конференция "Начинающим" » открыт ли порт? [D6, WinXP]
Есть новые Нет новых   [134437   +29][b:0][p:0.001]