Форум сайта python.su
Здравствуйте!
К серверу подключены несколько клиентов. Эсть ли буффер для каждого клиента и его размер.
Офлайн
коляК какому серверу и каких клиентов? Сферических клиентов к сферическому серверу в вакууме? :)
К серверу подключены несколько клиентов.
Офлайн
Alex2ndrUDP сервер + UDP клиенты, Win XP, Python 2.7коляК какому серверу и каких клиентов? Сферических клиентов к сферическому серверу в вакууме? :)
К серверу подключены несколько клиентов.
Если вы говорите про самописный сервер, то от вас зависит есть там буфер или нет.
# 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)
Офлайн
Что значит “для каждого клиента”?
Параметр относится к вашему серверному UDP сокету.
Не путайте с TCP, который делает по сокету на клиента в connect.
К тому же, надеюсь, вы понимаете - этот параметр устанавливает размер буфера и никак не относится к размеру UDP пакета. В общем - довольно бесполезная вещь.
Офлайн
Слово о буффере. Размер пакета - иное дело. У меня пакеты маленькие.
Дело в том, что читая буффер, получаю толко один пакет, хотя читаю реже, чем клиент высылает и должно быть не один, а больше.
Офлайн
Думаю, вы таки читаете не буфер а сокет. Буфер - скрытая штука.
В винде он по умолчанию 8K, на линуксе гораздо больше.
Неужели у вас 4 килобайтные UDP пакеты?
Отредактировано (Окт. 6, 2010 18:47:57)
Офлайн
Андрей СветловУже писал, что пакеты маленькие. Буффер увеличил до 32к, а в пакеты всего GGA и RMC от GPS.
Думаю, вы таки читаете не буфер а сокет. Буфер - скрытая штука.
В винде он по умолчанию 8K, на линуксе гораздо больше.
Неужели у вас 4 килобайтные UDP пакеты?
Офлайн
ты во фряшке хочешь по UDP передавать данные, мне так и не ответили http://python.su/forum/viewtopic.php?id=8658 на тему про icmp, хотя эта утилитка может передавать по UDP(при правильной настройке)
Офлайн
коля, наконец то понял что вы имеете в виду.
Да, естественно, все пакеты на UDP сокет попадают в один буфер.
Если их не выбирать оттуда, старые начнут пропадать, если им не хватит место. Буфер - циклический.
Офлайн
Спасибо Андрей!
Только у меня буффер 32к, покеты как сказал маленькие, а никак не могу добиться читать больше одного пакета сразу.
Выходит, что буффер только для одного пакета. В тредам начал разбиратся …
Может и плохо обьясняю. Русский не родной, учил его давно, а и не с кем пользовать. Извините …
Отредактировано (Окт. 8, 2010 14:38:25)
Офлайн