LINUX.ORG.RU
 
AIv

Клиент/серверные сетевые приложения на Python - записки дилетанта (часть 1)


0

3

В статье, написанной как учебное пособие, описано создание клиент-серверных приложений, начиная от простейшего эхо-сервера, и заканчивая удаленным доступом к экземпляру произвольного класса с передачей исключений с сервера на клиент (что существенно упрощает отладку).

Удаленный доступ к экземпляру класса реализован через тонкий клиент (оболочку) и перегрузку доступа к атрибутам класса, что вообще говоря может иметь гораздо более широкое применение чем создание сетевых приложений.

>>> Статья


[#]  

шрифт стремный, нету картинок. скучно ))

anonymous ()
[#]  

Не худший вариант, но у питона в стандартной либе есть гораздо более проработанные варианты (SimpleXMLRPCServer, например), надо было бы их упомянуть для справедливости.

*** ()
[#] Ответ на: комментарий от provaton 22.06.2011 1:47:44  
AIv

Наука знает много гитик.... статья не зря так называется, я пишу о чем знаю. О чем не знаю (SimpleXMLRPCServer, например) - не пишу;-)

*** ()
[#]  

> Поскольку при генерации этого текста все примеры запускаются автоматически через bash и make, за счет буферизации потоков вывода результат получается иным, но вызовы sys.stdout.flush() позволяют исправить ситуацию.

Лучше запускать интерпретатор с ключиком '-u', вызов flush и комментарий выглядят несколько неуклюже.

** ()
[#] Ответ на: комментарий от baverman 22.06.2011 2:01:27  
AIv

Спасибо большое, поправил.

*** ()
[#]  
t184256

Вот че оно тут делает? Даже если считать, что мы на opensource.ru, сюда теперь что, все сниппеты постить, какие найдем, без указания лицензии? Зачем?..

* ()
[#] Ответ на: комментарий от t184256 22.06.2011 9:39:10  
AIv

Найдите мне пожалуйста указание лицензии в ПРИМЕРАХ КОДА у Марка Лутца. Ы?

*** ()
[#] Ответ на: комментарий от t184256 22.06.2011 9:39:10  
AIv

Данная версия программы Hello world распространяется под GPLv2+. LOL

*** ()
[#] Ответ на: комментарий от AIv 22.06.2011 9:47:47  
t184256

Найдите мне примеры из Марка Лутца, которым посвящена новость на главной ЛОР. И кыш в микроновости какого-нибудь другого сайта.

* ()
[#] Ответ на: комментарий от t184256 22.06.2011 10:00:39  
AIv

Новости о книгах Марка Лутца бывают здесь нечасто. Я конечно не он, но судя по ряду тредов здесь же, тема статьи актуальна. Тем более, раз уж про переход на 5ю верию Iceweasel на главной лежитЪ...

Вам не нравится - не читайте. Токо не надо свое мнение выдавать за истину в конечной инстанции, лады?

*** ()
[#]  
ggrn

#-------------------------------------------------------- зачем ?

if data.__class__ == str : send_string( connect, 'S'+data ) ничегонипонимаю

*** ()
[#] Ответ на: комментарий от ggrn 22.06.2011 10:08:44  
AIv

эквивалентно в некотором смысле type(data) is str

*** ()
[#] Ответ на: комментарий от AIv 22.06.2011 10:07:34  
t184256

Я не выдаю, а ожидаю, и не мнение, а пояснения. Примерам же на главной просто не место.

* ()
[#] Ответ на: комментарий от t184256 22.06.2011 10:24:53  
AIv

Пояснения к чему именно Вы ожидаете?

*** ()
[#] Ответ на: комментарий от t184256 22.06.2011 10:31:40  
AIv

- Пeтька, приборы? -200! -Что 200? -А что приборы??

Если хотите получить внятный ответ - внятно формулируйте вопрос. На вопрос по ссылке (че оно тут делает?) ответ - ЛЕЖИТ.

*** ()
[#] Ответ на: комментарий от AIv 22.06.2011 10:38:57  
t184256

Десяток комментов спустя откройте глаза на мой первый коммент в третий раз. Там кроме риторического первого вопроса есть горестный печальный второй. А вы бросились доказывать со мной хором абсурдность ваших же действий.

Итак, зачем?

* ()
[#] Ответ на: комментарий от t184256 22.06.2011 10:46:12  
AIv

Зачем она тут лежит?

Затем, что это не первая моя статья, которую я выкладываю тут (на главной), и на предыдущие статьи реакция была от очень хорошей до сдержанно хорошей. Затем, что мне интересно мнение специалистов о том, что я делаю. Затем, что судя по отзывам то, что я делаю, оказывается полезным кому то еще за пределами нашей рабочей группы.

*** ()
[#] Ответ на: комментарий от AIv 22.06.2011 11:15:13  
t184256

А как же тематика сайта? Других ресурсов нет? Белые буквы вверху страницы глаза не режут?

* ()
[#] Ответ на: комментарий от t184256 22.06.2011 11:18:12  
AIv

А Вы считаете, что эта статья не подходит в раздел документация?

*** ()
[#] Ответ на: комментарий от AIv 22.06.2011 11:20:49  
t184256

Да. Ибо документирует нетрадиционно и вообще не ОС Linux.

* ()
[#] Ответ на: комментарий от t184256 22.06.2011 11:22:04  
AIv

Вы отчасти правы, но ИМНО она ближе именно к документации, чем к какому либо другому разделу.

*** ()
[#] Ответ на: комментарий от t184256 22.06.2011 11:22:04  
shty
>>-----Цитата---->>

Да. Ибо документирует нетрадиционно и вообще не ОС Linux.

<<-----Цитата----<<

слушай, если тебя так что-то не устраивает - пожалуйся модераторам, они разберутся и примут решение, но вот только не надо устраивать плач ярославны, он в 10^30 раз менее уместен тут, нежели данная статья

*** ()
[#]  

интересно посмотреть, делал такое же. ссылка чтото не робит.

** ()
[#] Ответ на: комментарий от TheMixa 22.06.2011 12:08:40  
AIv

какая именно ссылка? У меня все робит;-)

*** ()
[#] Ответ на: комментарий от shty 22.06.2011 11:30:42  
t184256

Я ответ хотел, но его тут нет. Простите за затянувшуюся дискуссию.

* ()
[#] Ответ на: комментарий от t184256 22.06.2011 13:13:48  
pylin

А почему же не относится к тематике?Python это важный компонент дистрибутивов Linux. Далее сетевая тематика этот конек Linux как же об этом не писать? А разве кросплатформеннность была когда нибудь негативом?

И на правах юмора: когда это велосипеды не были частью Linux?)Кстати в велосипедостроении нет ничего плохого. Так что статье на главной быть должно)

** ()
[#] Ответ на: комментарий от AIv 22.06.2011 10:16:54  
true_admin

в таких местах используют isinstance().

PS статью не читал.

***** ()
[#]  

я конечно извиниясь но зачем писать на таком "низком" уровне ? Есть же готовые фреймоворки - Twisted например.

**** ()
[#] Ответ на: комментарий от SI 28.06.2011 22:05:58  

а для передачи "объектов" юзать тот же xmlrpc например.

**** ()
[#]  
rapid

> Клиент/серверные сетевые приложения на Python - записки дилетанта (часть 1)
На кой ляд на главной записки дилетантов постить? Был бы профи, слова не сказал ;)

()
[#]  
d9d9

Я бы сказал что запускать новый поток при соединении как минимум не эффективно. Лучше держать пул потоков и через какой-то мутекс скармливать следующему ожидающему входящий сокет.

* ()
[#]  
Reset

Годится для домашней странички васи пупкина. Если бы я работал в "Институте прикладной математики им. М.В.Келдыша РАН", то я бы постеснялся упоминать название института в такой статье.

***** ()
[#] Ответ на: комментарий от SI 28.06.2011 22:06:34  
Reset

Нет, в питоне как раз идеологически правильный и гораздо более простой вариант это делать сериализацию через pickle и передавать по сети.

***** ()
[#]  
overmind88

По нику автора сначала подумал, что это федорчук забрел на лор

***** ()
[#]  
Napilnik

Статья интересная, но жуткое ШГ, нет сил читать.

*** ()
[#]  

В питоне потоки не работают из-за GIL, используйте multiprocessing

anonymous ()
[#]  

скоро потребуется спасибо!

слушайте есть хорошая дока про ООП в питоне? что нибудь общепринятое как разбиения на модули, защитные методы классов etc с практической т.з.

()
[#]  
real_maverick

OMG - я хочу развидеть такой python style writing

вы молодцы и проделали большую работу, но такое впечатление, что экономили место... нечитабельно же ни хрена ;(

*** ()
[#]  
Kostafey

Статья годная. Да, иногда некоторые вещи лучше на коленке свинтить, если они для внутренних задач, чем курить маны к навороченным библиотекам/фреймворкам.

Стиль оформленя кода у автора специфический, но это не суть.

()
[#]  
tazhate

pdf? are u kidding me?

***** ()
[#] Ответ на: комментарий от AIv 22.06.2011 1:50:32  

> я пишу о чем знаю

мля, ну почему все считают, что программирование - это просто, нужно только прчесть какую-нибудь дрянную книжку, написанную до изобретения колеса и переведенную непонятно кем, накопипастить из нее чего-нибудь и как-нибудь, и, всенепременно, написать о своем "бесценном опыте", дабы и другие тоже могли испытать радость "созидания".

почему, например, никто не берется вырезать аппендикс кому-нибудь из своих родных или знакомых, прочитав пару статеек об этом? попробуйте на досуге - ножик, для первого раза, можно и кухонный взять, а наркоз и дизинфекцию можно и вовсе пропустить. а потом можно будет и свою статью написать. главное, указать во вступлении, что автор - не хирург, но понял что хирургия - это не так уж и сложно.

нет, я не против, чтобы люди, далекие от программирования, пробовали себя в этом увлекательном занятии. я против таких вот статей. не надо писать о том, чего не знаешь! код из этой статьи мог бы быть отличным примером, чего делать не надо и как нельзя писать. попробуйте, для начала, изучить возможности стандартной библиотеки питона. я уже даже и не говорю о существующих библиотеках для решения подобных задач.

anonymous ()
[#] Ответ на: комментарий от AIv 22.06.2011 10:07:34  
nutz

Прочитав статтью, пойму ли я как, напрмиер, отослать 2 цифры от 1 клиента к другому? (нужно для игры, для отсылания текущих координат)

** ()
[#] Ответ на: комментарий от anonymous 29.06.2011 1:17:49  
goingUp

AIv, статью надо писать с пафосом, важно раздувая щеки, вот как IBM_dw делает, а не то набегут разные и будут называть тебя чайником

** ()
[#]  

я бы сменил шрифт в первую очередь

anonymous ()
[#]  

на питоне!!!
Следущая статья-высокопроизводительные приложения на джаваскрипте,или написание сервисов под джава на lua...
ужасть

anonymous ()
[#]  

И вот нафига её качать? Не мог выложить в штмл?

* ()
[#] Ответ на: комментарий от anonymous 29.06.2011 2:12:58  
Napilnik

Ага, однопиксельные линии препогано масштабируются, а выложить копию в html нельзя - свиснут и выложат на другом сайте.

*** ()
[#]  
iVS

Открыл документ, попробовал прочесть. При взгляде на шрифт глаза вытекли из орбит на клавиатуру. А еще - учебное пособие. Хотите сделать подрастающее поколение инвалидами по зрению? Нет, нам такой футбол не нужен (с). Закопал сабж обратно.

* ()
[#]  
boo32

Зачем дилетанты пишут статьи, распространяя своё дилетантство? Лучше бы занялись своим образованием, читая недилетантов.

* ()