Форум сайта python.su
20
Я даже не знаю как реагировать на ваши вопросы, попросту нет слов. При чём здесь Twisted и серверная часть вообще? Вы не понимаете столь элементарных вещей, которые познаются буквально в первые 15 минут изучения языка (любого языка), это базовые типы, такие как (в данном случае) списки и целые числа и элементарные операции, вроде добавления элемента в список, удаление элемента из списка, увеличение и уменьшение целочисленной переменной на заданное число (в данном случае 1). Как эти два типа и четыре операции могут сбивать с толку я ума не приложу.
`numConnections` здесь (ну и это просто ОЧЕВИДНО же) это просто счётчик подключений, который нахрен не нужен, если есть, скажем `clients`, из примера выше. Я не понию как это может быть не понятно. Может стоит начать с книжки по основам Python. Даже если сильно хочется попрактиковать (безусловно похвальное желание), наверное всё же стоит сдерживать себя и прежде разобраться в основах, в частности с базовыми типами и операциями над ними. Потому что, если вы не понимаете что такое i += 1, о чём вообще можно с вами говорить. Если бы там хотя бы было `+= self`, а так…
Постарайтесь пожалуйста задавать в будущем вопросы чуть посложней, а то над этим я 4 дня думал :-).
..bw
Офлайн
0
ясно, спасибо за объяснения )
Да просто сам не понимаю почему у меня с twisted касяк я с django моментально разобрался и че по чем а тут встало и все тут
помогите с этим тогда разобраться, я что то пониаю а что то вообще отсутствует, просветите меня пожалуйсто
from twisted.internet.protocol import Factory, Protocol from twisted.protocols.basic import LineReceiver class ChatProtocol(LineReceiver): def __init__(self, factory): // не понимаю откуда взялся factory главное что за данные в нём? self.factory = factory self.name = None // это я понимаю как юзер который обратился self.state = "REGISTER" // это что провести условия и дать значению новому, типа авторизации def connectionMade(self): self.sendLine("What's your name?") // только подключился сразу спрашиваем кто он def connectionLost(self, reason): if self.name in self.factory.users: // users это вроде как словарь ключ:значение типа Вася:Register, только не понятно как он его нашел там по сути их много должно быть del self.factory.users[self.name] // здесь удаляют именно того кто обратился self.broadcastMessage("%s has left the channel." % (self.name,)) // типа функция с текстом и в начале имя юзера def lineReceived(self, line): if self.state == "REGISTER": //вот началось проверка кто он self.handle_REGISTER(line) // если он первый раз пришел то вызываем эту функцию и как понимаю в line его имя else: self.handle_CHAT(line) // тут по сути прошла авторизация и это думаю уже текст def handle_REGISTER(self, name): // вот наша авторизация if name in self.factory.users: // типа он проверил есть ли такой уже чел хотя для меня не ястность почему в if а не в for как он умудрился проверить за раз self.sendLine("Name taken, please choose another.") // типа что то мы ему отправляем return self.sendLine("Welcome, %s!" % (name,)) // типа сервер здаровается или что то вроде этого но две строчки как то запутаны и ладом не понял self.broadcastMessage("%s has joined the channel." % (name,)) self.name = name self.factory.users[name] = self // тут по сути он обавил нового в словарь self.state = "CHAT" // тут ему дали другой статус def handle_CHAT(self, message): // это типа он авторизирован с текстом message = "<%s> %s" % (self.name, message) self.broadcastMessage(message)// типа эта видать функция отвечает за отдачу и как я вижу for то вроде всем но жутко сомневаюсь def broadcastMessage(self, message): for name, protocol in self.factory.users.iteritems(): if protocol != self: protocol.sendLine(message) // вот функция раздачи class ChatFactory(Factory): def __init__(self): self.users = {} def buildProtocol(self, addr): // не поиму что за данные в addr? return ChatProtocol(self) // это как бы наследие addr if __name__ == '__main__': from twisted.internet import reactor reactor.listenTCP(8000, ChatFactory()) reactor.run()
Отредактировано Shyt_nik (Авг. 5, 2013 23:05:42)
Офлайн
25
Shyt_nikСлишком много вам придется объяснять - лучше прочитайте книгу по питону (как и советовал bw), затем - книгу по Twisted. Наврятли вы найдете желающих разжевывать (настолько подробно) вам все примеры твистеда.
помогите с этим тогда разобраться, я что то пониаю а что то вообще отсутствует, просветите меня пожалуйсто
Отредактировано s0rg (Авг. 6, 2013 16:38:50)
Офлайн
0
вот мне и надо заципиться, чуть разобраться в примерах там я уже поиму как вся технология работает и смогу читать код
Офлайн
568
Shyt_nik,
Вам тут пытаются объяснить, что асинхронное программирование - это не для нубов, коего Вы судя по всему являете. Сначала научитесь уверенно писать классические студенческие программки, потом будет о чем толковать.
Офлайн