Найти - Пользователи
Полная версия: Конфликт socket в threading
Начало » Network » Конфликт socket в threading
1 2 3
yurtaev
Alex2ndr
Эээээ…. Я бы сделал по другому.
Вот у нас есть некий класс, который занимается созданием сокета и передачей по нему данных. Так пусть этот класс сам рулит тем, когда нужно вызывать какие-то sendmessage. А вы хотите наоборот, создавая себе лишние проблемы. Т е нужна иная архитектура программы.

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

Как-то так. Вероятно вам надо связать события в GUI с сетевой подсистемой программы.
yurtaev
Alex2ndr
Вероятно вам надо связать события в GUI с сетевой подсистемой программы.
Ну потчи, у меня веб приложение, типа чата, для каждого пользователя с веба создается поток клиента с сокетом который подключается к серверу. Вот и встала такая задача, проблема в том что надо вызывать функцию из трэда с параметром, т.е с сообщением. Сейчас думаю над решением этой задачи, возможно надо будет делать список заданий и хранить в списке указывая в нём имя трэда и текст сообщения, а уж в трэдах сделать проверку на наличие задания и его выполнение.
yurtaev
yurtaev
Вот и встал вопрос можно ли по имени трэда вызвать в нём функицю sendmessage(text) …
Для тех кто наткнется на такой же вопрос: http://python.su/forum/viewtopic.php?pid=57660
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB