Pull to refresh

Comments 28

Первая ссылка в гугле —
Там все рассказано.
на самом деле сокеты в питоне — простая обертка над сишными. разобрались в сях, в питоне все сразу же пойдет на ура. документации полно и для питона и для сей.
Да, документация это хорошо, но это статья для новичков, которым важно просто понять суть.
Да и английский не все знают идеально, к сожалению.
Если нет знаний языка, хотя бы на минимальном уровне, будет очень тяжело что-то разрабатывать, можно сказать, что ничего и не получится.
Документация всё же носит «академический», справочный характер и мало подходит для обучения или первого знакомства с темой. Грубо говоря, нужно знать что такое сокеты, прежде чем читать доки по ним в конкретном языке. А подобные статьи вводят и понятия сокетов, и практику их использования.
Посмотрите, как автор назвал статью — «Сокеты в Python для начинающих», тем более, в документации по ссылке, которую я приводил, есть пару слов о сокетах, которые не относятся к языку конкретно. И в данном случае, документация не носит «академический» или справочный характер, так как там все четко написано и с примерами.
Согласитесь, что язык автора более живой, чем документация.
пока английский знаю не очень, документацию читаю через силу, поверхностно… но это не мешает мне разрабатывать код и в эмбеде и под PC для нужд реалити квестов.
Для новичков статья очень полезна. Спасибо.
Статья короткая и простая, но аналогия с окошками — очень удачная.
Хорошая статья, мне понравилось, но все как то в общем, хотелось по больше инфы, хотя гугл никто еще не закрывал. Автор, спасибо!
Спасибо, автору ad3w , все просто и понятно.
Было бы ещё неплохо прочитать про docs.python.org/library/struct.html (Interpret strings as packed binary data)
Строки посылать хорошо, но в реальности почти всегда нужно сформировать пакет из данных, например какой то optcode + длина сообщения + само сообщение.
UFO just landed and posted this here
Спасибо. Нет, к сожалению ничего не завалялось больше. Но могу написать по интересующей вас теме.
UFO just landed and posted this here
а есть ли на хабре (или может ещё где) популярная статья о сокетах для новичков с комментариями пользователей?
С пояснением различных состояний вроде LISTEN, TIME_WAIT, FIN_WAIT1 и т.п.
С ответами на вопросы о «Если данных больше нет, то этот метод ничего не возвращает. Таким образом мы можем получать от клиента любое количество данных.» — почему сервер решает что данных нет (на основании чего), любое количество — это сколько и что делать, если надо больше?
С кодом для работы сервер — много клиентов, какие проблемы в таком коде и как их обойти.
С обработкой ситуаций, когда клиент «отвалился».
присоединяюсь к вопросу. Можно конечно разобраться в схеме
image

Но от комментариев грамотного человека грех отказываться.
От блин, работает зараза. Сервер запустил на компе, клиента на телефоне в андроиде в sl4a. единственное что не удобно серверная часть не резидентная что ли, т.е. терминал должен быть открыт и ip приходиться вбивать явно, где то на хабре так же был вариант генерирования QR-code c IP. Спасибо.
А что делать если мне нужен демон, который будет слушать порт постоянно и отдавать данные? В данном варианте сервер завершается после первой отдачи
  • Увеличить число одновременных коннекций, например, на 5 в server.listen(5);
  • Перенести операции с полученный сокетом из цикла while в параллельный поток используя модули threading или multiprocessing.
    Пример с threading:

    while True:
        client,addr = server.accept()
        print "[*] Accepted connection from: %s:%d" % (addr[0],addr[1])
        # spin up our client thread to handle incoming data
        client_handler = threading.Thread(target=handle_client,args=(client,))
        client_handler.start()

    Предпоследняя строчка вызывает функцию handle_client, где происходят любые вам нужные манипуляции с сгенерированный клиентским сокетом client, в то время, когда цикл вернулся и уже готов принимать следующую коннекцию.
Почему везде пишут «while true» хотя правильнее было бы «while conn» — так даже в официальной документации, но почему то во всех туториалах «while true»… заговор какой-то…
Sign up to leave a comment.

Articles