Конференция "Сети" » открыт ли порт? [D6, WinXP]
 
  • Артем (24.04.09 21:51) [0]
  • Сергей М. © (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]
    Огромное спасибо, помогло....
 
Конференция "Сети" » открыт ли порт? [D6, WinXP]
Есть новые Нет новых   [134436   +24][b:0][p:0.001]