Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 11, 2010 10:06:35

yurtaev
От:
Зарегистрирован: 2009-11-17
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

Конфликт socket в threading

Alex2ndr
Эээээ…. Я бы сделал по другому.
Вот у нас есть некий класс, который занимается созданием сокета и передачей по нему данных. Так пусть этот класс сам рулит тем, когда нужно вызывать какие-то sendmessage. А вы хотите наоборот, создавая себе лишние проблемы. Т е нужна иная архитектура программы.

Честно скажу, что не знаю как сделать так, как вы хотите. Может можно, а может и нет.
Ну ладно, дальше уже проще, просто проблема в том что событие отправки сообщение возбуждается из вне. Еще раз спасибо.



Офлайн

#2 Июнь 11, 2010 10:19:29

Alex2ndr
От:
Зарегистрирован: 2009-12-26
Сообщения: 204
Репутация: +  0  -
Профиль   Отправить e-mail  

Конфликт socket в threading

yurtaev
просто проблема в том что событие отправки сообщение возбуждается из вне. Еще раз спасибо.
Я понял чего вы хотите. Если не искать специальных путей, то можно сделать так:
1. При создании класса передать ему указатель на некую переменную exec. Как это будет сделано не важно. Можно воспользоваться глобальными переменными, можно экземпляром класса и тд.
2. Класс создал сокет и ушел в ожидание:
while True:
if exec:
do somethig
else:
pass
3. Из внешней функции меняем exec. Класс видит, что условие меняется и делает do somethig.

Как-то так. Вероятно вам надо связать события в GUI с сетевой подсистемой программы.



Офлайн

#3 Июнь 11, 2010 10:25:24

yurtaev
От:
Зарегистрирован: 2009-11-17
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

Конфликт socket в threading

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



Офлайн

#4 Окт. 14, 2010 15:43:43

yurtaev
От:
Зарегистрирован: 2009-11-17
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

Конфликт socket в threading

yurtaev
Вот и встал вопрос можно ли по имени трэда вызвать в нём функицю sendmessage(text) …
Для тех кто наткнется на такой же вопрос: http://python.su/forum/viewtopic.php?pid=57660



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version