Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 5, 2010 10:00:23

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

Буффер UDP сервера

Здравствуйте!
К серверу подключены несколько клиентов. Эсть ли буффер для каждого клиента и его размер.



Офлайн

#2 Окт. 5, 2010 12:02:34

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

Буффер UDP сервера

коля
К серверу подключены несколько клиентов.
К какому серверу и каких клиентов? Сферических клиентов к сферическому серверу в вакууме? :)
Если вы говорите про самописный сервер, то от вас зависит есть там буфер или нет.



Офлайн

#3 Окт. 5, 2010 13:25:29

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

Буффер UDP сервера

Alex2ndr
коля
К серверу подключены несколько клиентов.
К какому серверу и каких клиентов? Сферических клиентов к сферическому серверу в вакууме? :)
Если вы говорите про самописный сервер, то от вас зависит есть там буфер или нет.
UDP сервер + UDP клиенты, Win XP, Python 2.7

Использую socket модуле

          # Define UDP server socket object
Server_Socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

# Enable address re-using
Server_Socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

# Set receiving buffer size
Server_Socket.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUFF, 32768)

# Bind server socket object to server IP address and port number
res = Server_Socket.bind((Server_IP_Address,Server_Port_Number))

# Set server socket in non-blocking mode
Server_Socket.setblocking(0)
Server_Socket.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUFF, 32768) для каждого клиента ли относится?



Офлайн

#4 Окт. 5, 2010 15:24:08

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

Буффер UDP сервера

Что значит “для каждого клиента”?
Параметр относится к вашему серверному UDP сокету.
Не путайте с TCP, который делает по сокету на клиента в connect.
К тому же, надеюсь, вы понимаете - этот параметр устанавливает размер буфера и никак не относится к размеру UDP пакета. В общем - довольно бесполезная вещь.



Офлайн

#5 Окт. 6, 2010 09:25:36

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

Буффер UDP сервера

Слово о буффере. Размер пакета - иное дело. У меня пакеты маленькие.
Дело в том, что читая буффер, получаю толко один пакет, хотя читаю реже, чем клиент высылает и должно быть не один, а больше.



Офлайн

#6 Окт. 6, 2010 15:40:37

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

Буффер UDP сервера

Думаю, вы таки читаете не буфер а сокет. Буфер - скрытая штука.
В винде он по умолчанию 8K, на линуксе гораздо больше.
Неужели у вас 4 килобайтные UDP пакеты?



Отредактировано (Окт. 6, 2010 18:47:57)

Офлайн

#7 Окт. 7, 2010 09:04:56

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

Буффер UDP сервера

Андрей Светлов
Думаю, вы таки читаете не буфер а сокет. Буфер - скрытая штука.
В винде он по умолчанию 8K, на линуксе гораздо больше.
Неужели у вас 4 килобайтные UDP пакеты?
Уже писал, что пакеты маленькие. Буффер увеличил до 32к, а в пакеты всего GGA и RMC от GPS.
По моему, чтение с recv или recfrom читает именно буффер сокета. Выходит что нада читать как можно быстрее так как все клиенты пишут в одного и то же буффера, причем каждый новый запис стирает старого.
Или ошибаюсь???

В принципе ето связано с BSD, а не Питона.



Офлайн

#8 Окт. 7, 2010 18:04:30

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Буффер UDP сервера

ты во фряшке хочешь по UDP передавать данные, мне так и не ответили http://python.su/forum/viewtopic.php?id=8658 на тему про icmp, хотя эта утилитка может передавать по UDP(при правильной настройке)

Офлайн

#9 Окт. 8, 2010 12:47:48

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

Буффер UDP сервера

коля, наконец то понял что вы имеете в виду.
Да, естественно, все пакеты на UDP сокет попадают в один буфер.
Если их не выбирать оттуда, старые начнут пропадать, если им не хватит место. Буфер - циклический.



Офлайн

#10 Окт. 8, 2010 14:37:03

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

Буффер UDP сервера

Спасибо Андрей!
Только у меня буффер 32к, покеты как сказал маленькие, а никак не могу добиться читать больше одного пакета сразу.
Выходит, что буффер только для одного пакета. В тредам начал разбиратся …
Может и плохо обьясняю. Русский не родной, учил его давно, а и не с кем пользовать. Извините …



Отредактировано (Окт. 8, 2010 14:38:25)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version