Что это ошибка сделана попытка выполнить операцию

Операция временно недоступна. Попробуйте выполнить операцию позже. В чём проблема?

Банковские карты прочно вошли в современную жизнь. С их помощью легко отправлять деньги друзьям и знакомым, осуществлять покупки в Интернете или оплачивать счета за коммунальные услуги. К хорошему быстро привыкаешь, но иногда предлагаемый банком сервис не отвечает, и тогда появляется сообщение «Операция временно недоступна. Попробуйте выполнить операцию позже». Из-за чего это происходит и как справиться с проблемой?

Какие операции могут быть недоступны?

Клиенты банков могут столкнуться с комментарием о недоступности сервиса при:

  • попытке входа в личный кабинет через мобильное приложение или онлайн-банкинг;
  • оплате товаров или услуг на каком-либо сайте;
  • переводе денежных средств на карту или расчетный счет третьего лица;
  • оплате услуг непосредственно в мобильном приложении или онлайн-банкинге и т.д.

Помимо этого, сообщение о временно недоступной операции может появиться и при работе с банкоматами или терминалами самообслуживания. Например, вы захотели снять определенную сумму наличными, но на экране появляется ошибка и просьба попробовать выполнить запрос позже.

Причина ошибки и способы их устранения

Существует несколько факторов, из-за которых сервис не может обработать операцию:

  1. Технический сбой. Это самая распространенная причина отказа с формулировкой о временной недоступности сервиса. Она появляется, как правило, если программное обеспечение, используемое банком, обновляется, или сервера перегружены (в вечернее время нагрузка особенно высока). Также может выйти из строя вся система, из-за чего для безопасности счетов клиентов банк запрещает абсолютно все транзакции, пока функциональность не восстановится на 100%. Уточнить информацию удобнее всего, позвонив по телефону горячей линии вашего банка. Если на сайте проводятся технические работы, вам обязательно об этом сообщат.
  2. Вы ввели некорректные данные. Например, при входе в личный кабинет опечатались, когда вводили пароль или идентификатор. Проверьте, не включена ли клавиша Caps Lock и какую раскладку клавиатуры вы используете – латиницу или кириллицу. Если ошибка появляется вновь, зайдите в интернет-банкинг через другой браузер. Попробуйте набрать логин/пароль в любом текстовом редакторе, скопировать их и вставить в пустые поля для входа. Если ничего из перечисленного не помогло, распечатайте новые данные для входа. Для этого посетите ближайший банкомат со своей банковской картой.
  3. Устройство, с которого вы осуществляете вход, заражено вирусом, перегружено файлами либо неисправно. Перезагрузите компьютер, смартфон или планшет, отключите Интернет и включите его снова. Очистите в браузере историю, кэш и cookie, проведите полную проверку антивирусом, после чего повторите попытку.
  4. На вашем счете недостаточно средств для выполнения заданной операции. Этот фактор может стать причиной появления сообщения «Операция временно недоступна», если вы пытаетесь оплатить товары в онлайн-магазине. При этом у вас может быть установлен лимит на покупки в Интернете, который вы превышаете. Тогда вам следует проверить баланс карты и/или в настройках изменить ограничения по онлайн-покупкам.
  5. Ваша платежная система не поддерживается организацией, принимающей платеж. Например, вы хотите оплатить билет на поезд на сайте РЖД пластиком MasterCard, но система пропускает только Visa или МИР. Также на портале может быть указано, что они работают с переводами с электронных кошельков, но на деле это не так. Уточните сведения у продавца, позвонив ему по размещенным на сайте телефонам.
  6. Ваша карта заблокирована. Блокировка производится банками по разным обстоятельствам: у вас накопились долги по алиментам, штрафам, судебным решениям или налоговым сбором, и приставы наложили арест на ваши счета; с вашей карты осуществляются подозрительные транзакции, требующие проверки; вы перевели крупную сумму организации, причастной к террористическим действиям, и т.д. Для уточнения информации опять же позвоните на горячую линию банка.
  7. У вас не подключена система двухфакторной аутентификации 3D-Secure. Эта система предполагает, что при любом запросе на оплату на привязанный к карте номер телефона будет приходить СМС-сообщение с проверочным кодом. Знать его будете только вы и сервер банка, что снижает риск мошенничества. Если вы не подключили услугу, оплата в мобильном приложении или онлайн-банкинге на крупную сумму не пройдет. Активировать двухфакторную аутентификацию можно, позвонив в банк и проследовав предложенной инструкции.

Чаще всего ошибка «Операция временно недоступна. Попробуйте выполнить операцию позже» высвечивается, когда на сервере произошел технический сбой. Обычно спустя какое-то время функциональность восстанавливается, достаточно лишь подождать 10-15 минут.

💡Почему важно знать причины неоплаты?

Оплата банковской картой через интернет — эту услугу сейчас предлагает практически любой интернет магазин. Вы можете например купить билет на поезд, оплатив банковской картой, сделать покупку на ozon.ru, купить ЖД билет онлайн.

Я всегда заказывал и оплачивал билеты банковской картой через интернет(я использую только дебетовые карты, у меня нет кредитной карты). Самое интересное, что и эта услуга иногда дает сбой — зависают деньги на карте, не проходит оплата.

Но у меня был случай, когда оплата просто не проходила. Робокасса писала сообщение — оплата отменена. Я не знал, в чем причина. В личном кабинете найти ошибку мне не удалось.

Существует множество разных причин ошибок — они бывают по причине банка или владельца карты. Важно хотя бы предполагать причину ошибки, чтоб понимать как действовать дальше? К примеру, если не удается оплатить горячий билет, то нужно понимать в чем причина и попытаться исправить проблему. Иначе билет может быть куплен другим человеком.

Основные причины ошибок при оплате банковской картой

Первая причина, которая является самой распространенной — отсутствие нужной суммы на карте. Рекомендуется проверить ваш баланс — для этого нужно позвонить в банк или войти в интернет банк. Иногда по карте устанавливают ежемесячный или ежедневный лимит трат. Чтоб это проверить — нужно позвонить в банк.

Эта причина может быть не ясна сразу — при отказе в оплате может не отображаться ваш баланс. Ошибка аутентификации 3D secure может быть также связана с неверным вводом реквизитов карты на предыдущем шаге. В таком случае просто повторите платеж и укажите правильные данные.

Вторая причина — на стороне платежной системы. Например, терминал оплаты РЖД не позволяет платить картами MasterCard. Можно использовать только карты Visa.
Заданный магазин может не поддерживать данный способ оплаты. К примеру, Робокасса, которую подключают к множеству магазинов предлагает различные тарифы для оплаты.
Робокасса как оплатить
Я сначала хотел оплатить вебмани, однако я позвонил в магазин. Оказалось, оплатить вебмани нельзя. У них не подключена эта опция. Хотя способ оплаты через вебмани предлагается на странице оплаты.

Третья причина — возможно ваша карта заблокирована. Опять же можно позвонить в банк и проверить это. Блокировка может быть осуществлена банком автоматически в случае наличия подозрительных операций у клиента.

Четвертая причина — у вас не подключена опция 3d Secure(MasterCard SecureCode в случае MasterCard).
Технология 3D Secure заключается в следующем: при оплате вам приходит СМС от банка, которую вы должны ввести в специальном окне. Эту СМС знаете только вы и банк. Мошенничество в данном случае достаточно трудно, для него потребуется и ваш телефон.
Эта опция нужна вам для оплаты на сумму больше 3 тыс. рублей. Это как раз мой случай. Я купил в интернет магазине газовую плиту Bosh. При оплате товара на сумму 22 тыс. рублей мне выдалось вот такое сообщение:
оплата картой Робокасса

Ошибка при оплате банковской картой.
Я был в замешательстве, не знал что делать. Сначала я думал, что это проблема магазина. Но сначала я все таки позвонил в банк. В моем случае это был Промсвязьбанк и карта Доходная.
Позвонив в поддержку Промсвязьбанка, мне предложили сначала пройти процедуру аутентификации

  1. Назвать 4 последних цифры номера карты
  2. Назвать фамилию имя отчество полностью
  3. Назвать кодовое слово.

Далее для подключения услуги 3d Secure от меня потребовали 2 номера из таблицы разовых ключей.  Вроде как услугу подключили, но через полчаса оплата снова не прошла. Позвонил в банк — сказали ожидайте когда подключится — услуга подключается не сразу. Нужно подождать.

Я решил проверить, подключена ли услуга. Я залогинился в Интернет-банк — увидел, что такая услуга есть(в ПСБ ритейл это можно посмотреть на странице карты, щелкнув по номеру карты)
банк 3D Secure
Еще раз попытка оплаты — мне высветилось окно, где я должен был ввести код подтверждения. После заполнения данных карты мне пришло СМС с кодом для оплаты
оплата 3d secure
Далее вуаля — заказ наконец то оплачен. Я получил следующее окно и статус заказа в магазине изменился на «Оплачен»
Мой заказ доставили в пункт назначения, где я его заберу в течение месяца. Главное оплата прошла.
Оплата картой через интернет

Самая частая ошибка 11070: ошибка аутентификации 3d-secure — причины

Самая частая ошибка, которая происходит при оплате картой — 11070: ошибка аутентификации 3dsecure. Есть 2 возможных причины этой ошибки

  1. Введен неверный одноразовый код. Вам пришел код, но при вводе вы допустили ошибку в цифре. В результате получили ошибку
  2. Одноразовый код протух. Время, которое вам дают на ввод одноразового кода при оплате, составляет не более 5 минут. Далее вам придется повторить оплату.

В любом случае, советуем повторить процесс оплаты и удостовериться, что вы ввели одноразовый пароль 3D Secure сразу после получения и пароль введен верно.

Ошибка процессинга карты — что это такое?

Процессинг банка — это сложная программа, которая отвечает за обработку транзакций по картам. Когда вы снимаете деньги в банкомате, делаете покупку, то идет запрос по интернет в данную систему. Проверяется есть ли на вашей карте деньги. Эта программа находится на серверах в Интернет.

Вы не можете повлиять на данную ошибку никак. Вам стоит обратиться на горячую линию банка или интернет-магазина, где вы осуществляете транзакцию. Исправление ошибки — дело специалистов, поддерживающих данную систему. Остается только ждать.

Вы можете попробовать осуществить оплату повторно примерно через пол-часа. По идее такие ошибки должны исправляться очень быстро. Аналогичная ошибка бывает с сообщением «Сервис временно недоступен». Это значит, что сломалась серверная сторона и сделать ничего нельзя. Только ждать починки

Что значит хост недоступен при оплате картой

Хост — это определенный сетевой адрес. Это может быть ip адрес или же просто доменное имя(к примеру, server1.sberbak.online). При оплате картой через терминал происходит подключение к определенному сетевому адресу(хосту). На данном хосте находится программное обеспечение, которое производит оплату — снимает с карты деньги, проверяет баланс и т.д.

Если хост недоступен, значит деньги снять нельзя. Есть 2 основных причины недоступности:

  1. Нет интернет на устройстве, с которого производится оплата. В современных терминалах может быть вшит Интернет-модуль, через который терминал связывается с сервером. Возможно он потерял сеть или завис. В этом случае может помочь перезагрузка или же выход по голое небо, где Мобильный интернет ловит отлично
  2. Хост недоступен по причине поломки. В этом случае рекомендуется обратиться на горячую линию банка, который поддерживает ваш терминал. Данная проблема должна решаться на стороне хоста. Он может быть недоступен по разным причинам: завис, упал сервер, идет обновление программного обеспечения.

Что такое ошибка в CVC карты?

CVC-код — это трехзначный код, который находится на обратной стороне вашей банковской карты. Если появляется ошибка в CVC карты, то рекомендуем проверить, правильно ли вы ввели этот код? Если все правильно, пожалуйста проверьте, введены ли правильно другие данные вашей карты Сбербанка, ВТБ или другого банка.

cvc код
CVC код нужен для того, чтоб проверить, есть ли у вас на руках данная карта в руках. Данная ошибка значит, что CVC код введен неверно. Просто осуществите оплату повторно и введите все данные верно

Проблема при регистрации токена — как решить?

Проблема при регистрации токена — частая ошибка, которая проявляется на сайте РЖД при оплате билетов.
Токен — это уникальный идентификатор(стока типа 23hjsdfjsdhfjhj2323dfgg), которая формируется когда вы заказываете билет. Это как бы ваша сессия оплаты. Ошибка возникает на стороне сервера оплаты.
Решений может быть два

  1. Проблемы на сервере РЖД. Сервер оплаты очень занят и перегружен из-за числа заказов. Возможно на нем ошибка. Рекомендуем в этом случае попробывать повторить оплату позднее
  2. Токен Истек. Это вина того, кто платит. Рассмотрим ситуацию: если вы оформили билет, а потом отошли от компьютера на полчаса, а потом вернулись и нажали оплатить. Ваш заказ аннулирован, т.к. вы не оплатили вовремя. При оплате вы получите ошибку. Нужно заново купить билет и оплатить его в течение 10 минут.

Если ошибка в течение часа сохраняется, рекомендуем обратиться на горячую линию РЖД.

Ошибка банковской карты — карта не поддерживается

Ошибка «карта не поддерживается» может возникать, если вы оплачиваете какую-либо услугу картой другой платежной системы, предоплаченной картой либо же Виртуальной картой. Это не значит, что карта у вас «неправильная», на ней нет денег или еще что-либо. Просто в данном конкретном случае нельзя использовать карту вашего типа. К примеру, виртуальные карты нельзя использовать при оплате в Google Play Market.

Решение простое: попробуйте использовать другую карту. Если ошибка повторится, то обратитесь в службу поддержки интернет-магазина или платежного сервиса, где осуществляете оплату.

Таблица с кодами ошибок при оплате.

Немногие знают, что при оплате картой система обычно выдает код ошибки. Например, E00 при оплате. Иногда по ошибке можно понять, в чем проблема

Код ошибки и описание
Код 00 – успешно проведенная операция.
Код 01 – отказать, позвонить в банк, который выпустил карту.
Код 02 – отказать, позвонить в банк, который выпустил карту (специальные условия).
Код 04 — изъять карту без указания причины.
Код 05 – отказать без указания причины.
Код 17 – отказать, отклонено пользователем карты.
код 19 — тех. ошибка на стороне банка
Код 41 – изъять, утерянная карта.
Код 43 – изъять, украденная карта.
код 50 — ?
Код 51 – отказать, на счете недостаточно средств.
Код 55 – отказать, неверно введенный ПИН-код.
Код 57 – отказать, недопустимый тип операции для данного вида карты
(например, попытка оплаты в магазине по карте предназначенной только для снятия наличных).
Код 61 – отказать, превышение максимальной суммы операции для данной карты.
Код 62 – отказать, заблокированная карта.
Код 65 – отказать, превышение максимального количества операции для данной карты.
Код 75 — отказать, превышение максимального количества неверных ПИН-кодов для данной карты.
Код 83 – отказать, ошибка сети (технические проблемы).
Код 91 – отказать, невозможно направить запрос (технические проблемы).
Код 96 – отказать, невозможно связаться с банком, который выдал карту.
Код Z3 — онлайн не работает, а в оффлайне терминал отклонил транзакцию.

Что делать, если с картой все ОК, но оплата не проходит?

Самая типичная проблема, когда оплата не проходит — сбой в банковской системе. В работе банка могут наблюдаться перебои. Это может быть не обязательно ваш банк, а банк который принимает платеж на стороне клиента(которому принадлежит терминал). В этом случае можно дать 2 совета

  1. Подождать и оплатить позднее. Сбои в работе оперативно решаются и уже через час оплата может пройти без проблем. Обычно о сбоях можно узнать по СМС сообщениям или позвонив на горячую линию вашего банка.
  2. Использовать другую карту. Если нельзя оплатить одной — нужно попробывать оплатить другой картой. Если оплата и другой картой не проходит, то это скорее всего сбой на стороне, принимающей платеж. Тут остается только ждать.

3 полезных совета при оплате картой через Интернет

Во первых — заведите себе специальную карту. Не используйте для оплаты зарплатную карту, на которой у вас все деньги. Оптимально — кредитная карта. Она позволяет в отдельных случаях вернуть часть суммы покупки(CashBack). Обычно это сумма до 5 процентов от покупки. Будьте внимательны, некоторые сервисы при оплате катой берут комиссии. И конечно же адрес страницы оплаты всегда должен начинаться с https и рядом с адресом должен стоять значок в виде замка(Соединение https).

Во вторых — не держите много денег на карте. На карте должно быть немногим больше суммы, необходимой вам для покупки. Примерно плюс 10% от общей стоимости покупки. Логика проста — с нулевой карты ничего не могут снять.
Делаете покупку — просто пополняете карту в интернет банке и получаете нужную сумму.

В третьих — Делайте оплату картой в известных магазинах. Почитайте отзывы о магазинах на Яндекс.Маркет. Если вы платите картой, будьте готовы к тому, что при отмене заказа могут вернуться на вашу карту не сразу.
В последний раз, когда я делал оплату заказа и потом возвращал заказ и деньги, возврат на карту шел в течение 7 дней. Помните — никто деньги вам сразу не вернет. Будьте готовы ждать.

Популярные вопросы и ответы про оплату

Может ли пройти онлайн-оплата, если вы указали неверный cvv/cvc, но в системе 3d- secure ввели верный код из SMS?

Это вопрос из IT диктанта. Ответ на него ДА, может.

Код cvv/cvc известен только банку, который выпустил карту. И именно банк решает, пропустить транзакцию или нет. Данный код может и не передаваться при оплате, хотя и его нужно будет вводить при оплате. Авторизовать операцию возможно и без данного кода. Т.е. пройдет эта операция или нет — решает банк.

Пройдет ли оплата картой, если неверно ввести ФИО плательщика

ФИО плательщика практически не влияет на успешность оплаты. Можно ввести любое имя, хоть «Котик Вася» и при верном вводе других реквизитов карты оплата пройдет.

Дмитрий Тачков

Дмитрий Тачков

Работник банка или другого фин. учреждения
Подробнее

Создатель проекта, финансовый эксперт

Привет, я автор этой статьи и создатель всех калькуляторов данного проекта. Имею более чем 3х летний опыт работы банках Ренессанс Кредит и Промсвязьбанк. Отлично разбираюсь в кредитах, займах и в досрочном погашении. Пожалуйста оцените эту статью, поставьте оценку ниже.

основная функция для выбора вопроса и ответов:

def game(n):
    db_work = mySQL()

    rq = db_work.select_q(n)    #строка с вопросом
    ra = db_work.select_a(n)    #строки с ответами

    marcup = utils.answers_marcup(ra) #заполнение клавиатуры ответами

    bot.send_message(user_id, rq[1], reply_markup=marcup)

    db_work.close()

Запросы в бд:
1 запрос работает корректно а 2 крашится

def __init__(self):
        self.connection = mysql.connector.connect(host="localhost", user="root", passwd="123", db="test_db")
        self.cursor = self.connection.cursor()

    def select_q(self, id):
        with self.connection:
            self.cursor.execute('SELECT * FROM questions WHERE id = ' + str(id))
            return self.cursor.fetchone()


    def select_a(self, id_q):
        with self.connection:
            self.cursor.execute('SELECT answer FROM answers WHERE id_q = ' + str(id_q))
            return self.cursor.fetchall()

Если во 2 запросе поставить * или указать только 1 строку вместо нескольких, выдает ту же ошибку
5fe0d318510d3301143456.png

28.05.2019, 00:18. Показов 10426. Ответов 1


Студворк — интернет-сервис помощи студентам

Добрый вечер форумчане.
Возникла проблема при старте клиенской части (Пишу чат на сокетах)
Сервер стартует. На клиенте выдает ошибку —

Python
1
2
3
4
ile "C:/Users/stasp/Desktop/Chat_Server/chat_client.py", line 26, in <module>
You can start scrip with parameters: script_name, IP address, port number
    read_sockets, write_socket, error_socket = select.select(sockets_list, [], [])
OSError: [WinError 10038] Сделана попытка выполнить операцию на объекте, не являющемся сокетом

Вот код проекта —

local_settings.py

Python
1
2
3
4
5
6
import mysql.connector
 
connector = mysql.connector.connect(user='stas',
                                    password='12345',
                                    host='192.168.0.104',
                                    database='test')

models.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
 
import hashlib
import uuid
import datetime as dt
 
from local_settings import connector
 
 
#
# You need to create file with your DB connector. File name: local_settings.py
# import mysql.connector
#
# connector = mysql.connector.connect(user=' ',
#                                    password=' ',
#                                    host=' ',
#                                    database=' ')
 
def get_hashed_password(password):
    salt = uuid.uuid4().hex
    return hashlib.sha512(salt.encode('utf-8') + password.encode('utf-8')).hexdigest() + ":" + salt
 
 
def check_password(hashed_password, user_password):
    password, salt = hashed_password.split(':')
    return password == hashlib.sha512(salt.encode('utf-8') + user_password.encode('utf-8')).hexdigest()
 
 
def save_post(author, text):
    try:
        cursor = connector.cursor()
        sql_stmt = "INSERT INTO post (AUTHOR, TEXT, CREATED_AT)  VALUES (%s, %s, %s)"
        cursor.execute(sql_stmt, (author.strip(), text.strip(), dt.datetime.now()))
        connector.commit()
        return True
    except:
        return False
 
 
def tail_posts():
    try:
        cursor = connector.cursor()
        sql_stmt = "SELECT CREATED_AT, AUTHOR, TEXT  from post ORDER BY CREATED_AT DESC LIMIT 10"
        cursor.execute(sql_stmt)
        posts = cursor.fetchall()
        return posts
    except:
        return False
 
 
def check_user(name, password):
    cursor = connector.cursor()
    sql_stmt = "SELECT *  FROM  chat_user WHERE name=%s"
    cursor.execute(sql_stmt, (name,))
    row = cursor.fetchone()
    if row:
        id, name, hashed_password = row
        return check_password(hashed_password, password)
    return False
 
 
def create_user(name, password):
    if is_username_used(name):  # False if name is used or GUEST
        return False
    try:
        cursor = connector.cursor()
        sql_stmt = "INSERT INTO chat_user (NAME, PASSWORD)  VALUES (%s, %s)"
        cursor.execute(sql_stmt, (name, get_hashed_password(password)))
        connector.commit()
    except:
        return False
    return True
 
 
def is_username_used(name):
    cursor = connector.cursor()
    sql_stmt = "SELECT *  FROM  chat_user WHERE name=%s"
    cursor.execute(sql_stmt, (name,))
    row = cursor.fetchone()
    return True if row or name == 'GUEST' else False

chat_server.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
 
""" The simple chat server """
 
import socket
import sys
import threading
 
from models import save_post, tail_posts, create_user, check_user, is_username_used
 
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
 
if len(sys.argv) != 3:
    print("ntYou can start scrip with parameters: script_name, IP address, port number")
    IP_address = '192.168.0.104'
    Port = 5050
else:
    IP_address = str(sys.argv[1])
    Port = int(sys.argv[2])
 
server.bind((IP_address, Port))
server.listen(10)
print('ntServer started: ', server)
dict_of_users = {}
 
HELP = '''nHelp : /h - help | /l -login | /t - show last 10 | /u - show active users | /x - exit '''
BANNER = '''ntWelcome to this chatroom!
tYou should login (or register) for chat and use some commands '''
 
 
def clientthread(conn, addr):
    message2conn(BANNER + HELP, conn)
    while True:
        user = dict_of_users.get(conn, 'GUEST')
        try:
            message = conn.recv(2048)
            message = message.decode().strip()
 
            if message == '/h':
                message_to_send = 'You are logged as: ' + user + '@' + addr[0] + "> " + HELP
                message2conn(message_to_send, conn)
            elif message == '/x':
                message2conn('Bye. Good Luck!', conn)
                remove(conn)
            elif message == '/l':
                login(conn)
            elif message == '/u' and user != 'GUEST':
                message = 'Users: ' + ', '.join([i for i in dict_of_users.values() if i != 'GUEST'])
                message2conn(message if message else 'None', conn)
            elif message == '/t' and user != 'GUEST':
                posts2conn(tail_posts(), conn)
            elif message:
                message = user + '@' + addr[0] + "> " + message
                print(message)
                message2conn('<You as : ' + message, conn)
                if user != 'GUEST':
                    save_post(user, message)
                    message_to_send = user + '@' + addr[0] + "> " + message
                    broadcast(message_to_send.encode(), conn)
 
            else:
                remove(conn)
        except:
            continue
 
 
def broadcast(message, conn):
    for user_connection in dict_of_users:
        user_name = dict_of_users[conn]
        if user_connection != conn and (user_name and dict_of_users[user_connection]) != 'GUEST':
            try:
                user_connection.send(message)
            except:
                user_connection.close()
                del dict_of_users[user_connection]
 
 
def posts2conn(posts, conn):
    if not posts:
        message2conn('nLog emptyn', conn)
    else:
        for post in posts:
            message = 't'.join([str(i) for i in post]) + 'n'
            message2conn(message, conn)
 
 
def message2conn(message, conn):
    try:
        conn.send(message.encode())
    except:
        conn.close()
        remove(conn)
 
 
def login(conn):
    message2conn('Enter your name : ', conn)
    try:
        name = conn.recv(2048)
        name = name.decode().strip()
        if 2 < len(name) < 20 and name not in dict_of_users:
            message2conn('Enter your password: ', conn)
            try:
                password = conn.recv(2048)
                password = password.decode().strip()
            except:
                message2conn('You are not logged', conn)
                return False
            if is_username_used(name):  # registered user
                if check_user(name, password):
                    message = 'Thank you, {}. You are logged!'.format(name)
                else:
                    message2conn('Password is wrong', conn)
                    return False
            else:  # new user
                if create_user(name, password):
                    message = 'Thank you, {}. You are registered and logged!'.format(name)
                else:
                    message2conn('Login or password are wrong', conn)
                    return False
            dict_of_users[conn] = name
            message2conn(message, conn)
            return True
        else:
            message2conn('This name is not available!nt( 2 < len(NAME) < 20 )', conn)
            return False
    except:
        message2conn('You are not logged', conn)
        return False
 
 
def remove(conn):
    if conn in dict_of_users:
        del dict_of_users[conn]
 
 
while True:
    connect, addr = server.accept()
 
    dict_of_users[connect] = 'GUEST'
    print(addr[0] + " connected as GUEST")
 
    th = threading.Thread(target=clientthread, args=(connect, addr))
    th.start()
 
connect.close()
server.close()

chat_client.py

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
 
""" The chat client """
 
import sys
import select
import socket
 
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
COMMANDS = {'/h', '/l', '/x', '/u', '/t', }
 
if len(sys.argv) != 3:
    print("You can start scrip with parameters: script_name, IP address, port number")
    IP_address = '192.168.0.104'
    Port = 5050
else:
    IP_address = str(sys.argv[1])
    Port = int(sys.argv[2])
 
server.connect((IP_address, Port))
chat = True
 
while chat:
    sockets_list = [sys.stdin, server]
    read_sockets, write_socket, error_socket = select.select(sockets_list, [], [])
 
    for socket in read_sockets:
        if socket == server:
            message = socket.recv(2048).decode()
            if not message:  # server closed
                chat = False
                print('Server closed. Bye.')
                break
            sys.stdout.write(message)
            sys.stdout.write('n ')
            sys.stdout.flush()
            if message.strip().startswith('Bye.'):
                chat = False
                break
        else:
            message = sys.stdin.readline()
            server.send(message.encode())
server.close()

Буду очень благодарен за помощь!!

Добавлено через 32 минуты
насколько я понял, то проблема в ОС. но толкового решения я не нашел… помогите …



0



Выдаёт ошибку:

OSError: [WinError 10038] Сделана попытка выполнить операцию на
объекте, не являющемся сокетом

если что в regdata.txt хранится «username password«

import os
import socket

host = '127.0.0.1'
port = 12345

s = socket.socket()
s.connect((host,port))

file = open("regdata.txt", "r")
userdata = file.read()

while True:
    if not userdata == "":
        s.sendall(userdata.encode('utf-8'))
        file.close()
        data = s.recv(1024)
        s.close()
        print('Received:', repr(data))
    else:
        os.startfile("reg.py")

  • python
  • сокет
  • os

ΝNL993's user avatar

ΝNL993

3,2962 золотых знака9 серебряных знаков26 бронзовых знаков

задан 24 янв в 17:05

JonPlayGo's user avatar

1 ответ

Я решил ошибку убрав:

while True:

ΝNL993's user avatar

ΝNL993

3,2962 золотых знака9 серебряных знаков26 бронзовых знаков

ответ дан 24 янв в 17:32

JonPlayGo's user avatar

При попытке перевести деньги с одного своего счёта на другой выходит надпись: «во время выполнения операции произошла ошибка».

И перевести деньги не получается.

Почему так происходит в приложении Сбербанк Онлайн на мобильном, если в этот-же день получалось так перевести деньги ранее?

Что делать и отчего так может быть?

Такое случается нередко и причина, как правило, сбой в работе приложения.

Обычно помогает: выйти из приложения «Сбербанк Онлайн» и через пару минут зайти, ввести проверочный код по новой.

После этого, ошибка обычно не возникает и со своих счетов можно спойно перевести средства на свой другой счёт (между своими счетами).

Кладе­зь знани­й
[136K]

2 года назад 

Такое бывает, достаточно часто, у меня интернет получается от раздачи с мобильного телефона и если например дождь или ветер сильный то операция не проходит.

Ну и такие вот ошибки тоже бывают если проводить операцию в день когда многие пользуются приложением Сбербанка — это может быть и в конце месяца когда люди платят коммуналку и в такие дни сайт очень сильно перегружен и может давать временный сбой.

Это вполне объяснимая ситуация, которая происходит практически со всеми банками. И в этом могут быть виноваты погодные условия. Или же могут возникать сбои из-за пользования приложением большого количество людей обычно это бывает в конце месяца, когда нужно внести коммунальные взносы.

Знаете ответ?

Понравилась статья? Поделить с друзьями:
  • Что это ошибка протокола ssl или
  • Что это возникла ошибка при запуске c users
  • Что это вконтакте возникла ошибка
  • Что это ошибка при установлении защищенного соединения firefox
  • Что это в контакте пишет ошибка доступа