Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 11, 2010 13:55:58

Carzil
От:
Зарегистрирован: 2010-05-26
Сообщения: 106
Репутация: +  0  -
Профиль   Отправить e-mail  

Как организовать многосокетное приложение без потоков?

Как организовать многосокетное приложение без потоков?



Офлайн

#2 Ноя. 11, 2010 14:04:16

Carzil
От:
Зарегистрирован: 2010-05-26
Сообщения: 106
Репутация: +  0  -
Профиль   Отправить e-mail  

Как организовать многосокетное приложение без потоков?

Упс! Нашло озарение:

#! /usr/bin/python
import socket
stack = []
sstack = []
def nsocket():
global stack, sstack
sstack.append(socket.soket("""Всякие параметры"""))
if len(stack) != 0:
""" выполняем действие в стеке """
while True:
""" слушаем порт последнего сокета (sstack[len(ssatck) - 1]) """
""" новый клиент - обмениваемся сообщениями """
""" новое сообщение - отвечаем """
""" и т.д. """
""" если ничего нет - """
break
nsocket()



Офлайн

#3 Ноя. 11, 2010 14:06:04

Carzil
От:
Зарегистрирован: 2010-05-26
Сообщения: 106
Репутация: +  0  -
Профиль   Отправить e-mail  

Как организовать многосокетное приложение без потоков?

И ещё вопрос: сколько потоков может выдержать средний компьютер?



Офлайн

#4 Ноя. 11, 2010 14:06:35

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Как организовать многосокетное приложение без потоков?

тройные кавычки это не комментарии а строки, не надо их так…



Офлайн

#5 Ноя. 11, 2010 14:16:04

Carzil
От:
Зарегистрирован: 2010-05-26
Сообщения: 106
Репутация: +  0  -
Профиль   Отправить e-mail  

Как организовать многосокетное приложение без потоков?

Carzil
socket.soket(“”“Всякие параметры”“”)
Простите, привычка…



Офлайн

#6 Ноя. 11, 2010 14:19:59

AlexKiriukha
От:
Зарегистрирован: 2008-02-03
Сообщения: 81
Репутация: +  0  -
Профиль   Отправить e-mail  

Как организовать многосокетное приложение без потоков?

Мне кажется while True неэффективным. Рекомендую посмотреть в сторону http://docs.python.org/library/select.html А ещё может каким-то боком подойдёт twisted



Офлайн

#7 Ноя. 11, 2010 14:24:02

Carzil
От:
Зарегистрирован: 2010-05-26
Сообщения: 106
Репутация: +  0  -
Профиль   Отправить e-mail  

Как организовать многосокетное приложение без потоков?

Про всё это знаю, просто к точке-серверу (такие серверы расположены на не очень сильных компьютерах) может подключиться более 100 000 клиентов. И тогда вряд ли потоки будут эффективными.



Офлайн

#8 Ноя. 11, 2010 14:44:13

Carzil
От:
Зарегистрирован: 2010-05-26
Сообщения: 106
Репутация: +  0  -
Профиль   Отправить e-mail  

Как организовать многосокетное приложение без потоков?

Carzil
И ещё вопрос: сколько потоков может выдержать средний компьютер?



Офлайн

#9 Ноя. 11, 2010 19:28:38

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Как организовать многосокетное приложение без потоков?

прочитайте все же про select, poll, epoll и неблокирующие сокеты.
Вопрос про “сколько потоков может выдержать средний компьютер” попросту некорректен.
100 000 одновременных сетевых соединение не сделать - свободный портов не хватит.



Офлайн

#10 Ноя. 11, 2010 19:44:24

Carzil
От:
Зарегистрирован: 2010-05-26
Сообщения: 106
Репутация: +  0  -
Профиль   Отправить e-mail  

Как организовать многосокетное приложение без потоков?

Я спрашиваю про потоки, а не про сетевые соединения



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version