Форум сайта python.su
python3.1-win32
запускаем IDLE, в диспетчере задач появляются два процесса pythonw
вводим “from socket import *;s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);s.bind(('', 8000))”
жмем рестарт (ctrl-F6)
диспетчере задач появляется еще один процесс pythonw (всего 3)
вводим “from socket import *;s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);s.bind(('', 8000))”
получаем ошибку что порт уже используется
через некоторое время лишний процесс pythonw умирает, порт освобождается
это ошибка питона или ошибка IDLE?
если ошибка IDLE, то в каких ИДЕ этого нет?
Офлайн
Это ваша ошибка. Сокеты закрывать нужно…
На каком языке программирование вы видели другое поведение?
Офлайн
Андрей Светлов
в любом нативном.
при закрытии программы все ресурсы освобождает ОС.
но допустим, это моя ошибка в коде - то что там не закрыт сокет.
как этот код отлаживать? я не умею писать программы, так чтобы *никогда* не было ошибок.
что делать-то, если программа при отладке упала и сокет оказался не закрыт?
Офлайн
что делать-то, если программа при отладке упала и сокет оказался не закрыт?Использовать исключения.
Офлайн
Ferroman
я не совсем понял, вы советуете каждую строчку кода в try/except заворачивать?
и как это поможет от перезапуска программы?
или про перезапуск следует забыть?
Отредактировано (Март 16, 2010 13:03:12)
Офлайн
Я советую использовать штатные методы обеспечения стабильности и безопасности работы. Как вы их будете использовать - зависит от вашей квалификации. Хотите - заворачивайте каждую строчку. Ну или думайте, и заворачивайте только то, что надо.
Хотите писать программы с минимумом ошибок? Пишите тесты.
Для гарантированного выполнения при сбоях есть блок finally.
По поводу перезапуска программы - я так и не понял сути вашей проблемы.
Офлайн
FerromanIDLE использует два процесса pythonw, первый - для работы самой IDLE, второй - для работы программы.
По поводу перезапуска программы - я так и не понял сути вашей проблемы.
Офлайн
Из IDLE - понятияне имею, не пользуюсь. Про исключения, finally вы пропустили?
Офлайн
Ferromanзаголовок темы вы наверное не читали, первый пост по видимому тоже.
Из IDLE - понятияне имею, не пользуюсь
Офлайн
Я вопрос читал. Только вы ответы не читаете.
Офлайн