Форум программистов, компьютерный форум, киберфорум
Наши страницы

Python: Сети

Войти
Регистрация
Восстановить пароль
 
Wal1y
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 8
#1

Сокеты Python - Python

26.05.2016, 23:21. Просмотров 1292. Ответов 5
Метки нет (Все метки)

Уважаемые форумчане, подскажите, пожалуйста. Есть серверный сокет (исключительно для ознакомления составлен):
Python
1
2
3
4
5
6
7
8
9
10
11
12
import socket
sock = socket.socket()
sock.bind(('', 9090))
sock.listen(1)
conn, addr = sock.accept()
print 'connected:', addr
while True:
    data = conn.recv(1024)
    if not data:
        break
    elif data == 'qwe':
        print 'ok'
В идеале он должен работать так: бесконечно слушает порт 9090 и если на него приходит последовательность 'qwe' он выводит 'ОК' и продолжает слушать порт. Но после первого вывода ОК - сокет закрывается. вот клиентская часть сокета:
Python
1
2
3
4
5
import socket
a=input()
sock = socket.socket()
sock.connect(('localhost', 9090))
sock.send(a)
У меня такое чувтсво, что я упустил что то очень важное...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2016, 23:21
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сокеты Python (Python):

Изменение кода запроса с Python 2 на Python 3 - Python
Доброго времени суток. Я пишу программу и для её реализации мне необходимо, чтобы она делала запрос на гугл сервер и возвращала мне...

Как через сокеты python получать изображение с экрана компьютера, который состоит в локальной сети? - Python
Как через сокеты python получать изображение с экрана компьютера который состоит в локальной сети? И вообще возможно ли это? Прошу просто...

Python - момент истины. Python - как оружие возмездие против системы - Python
Какие модули в python мне нужны для взлома баз данных? Перехвата информации? Внедрения в систему? Добавлено через 10 минут Хочу...

Как из Python скрипта выполнить другой python скрипт? - Python
Как из Python скрипта выполнить другой python скрипт? Если он находится в той же папке но нужно передать еще передать скрипту аргументы.

Порт pyqt5 (python 3.5) программы на android - Python - Python
Подскажите пожалуйста возможно ли программу написанную на python методами pyqt5 переделать под android этими методами? Если так, то как? ...

Что лучше учить Python 2 или Python 3? - Python
хочу начать учить питон но полазив в нете, частенько попадалась информация что вроде как 2 будет долго жить и в то же время много кто на 3...

5
askurandrio
Заблокирован
27.05.2016, 00:13 #2
сделайте принт вместо break
0
Wal1y
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 8
27.05.2016, 09:09  [ТС] #3
Нашел решение, не знаю на сколько оно верное, но работает.
Добавил еще один бесконечный цикл после запуска сокета на прослушивание порта:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
import socket
sock = socket.socket()
sock.bind(('', 9090))
while True:
    sock.listen(1)
    conn, addr = sock.accept()
    print 'connected:', addr
    while True:
        data = conn.recv(1024)
        if not data:
            break
        elif data == 'qwe':
            print 'ok'
0
alex925
2616 / 2267 / 540
Регистрация: 19.03.2012
Сообщений: 8,814
27.05.2016, 11:13 #4
Цитата Сообщение от Wal1y Посмотреть сообщение
Добавил еще один бесконечный цикл
1
Semen-Semenich
520 / 319 / 163
Регистрация: 21.03.2016
Сообщений: 961
29.05.2016, 17:28 #5
alex925, кстати я тоже заморачивался над этим вопросом и поиск в гугл в основном давал такие же результаты с двумя while. поэтому так и остался этот вопрос у меня открыт
0
Jabbson
Модератор
Эксперт по компьютерным сетям
3329 / 2406 / 533
Регистрация: 03.11.2009
Сообщений: 7,691
Записей в блоге: 3
29.05.2016, 22:33 #6
Python
1
2
3
4
5
6
7
8
9
10
11
12
import socket
 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('',9090))
s.listen(1)
 
while 1:
    client, _ = s.accept()
    data = client.recv(1024)
    if data.decode('utf-8').strip() == 'qwe':
        print('OK')
    client.close()
Добавлено через 49 секунд
Python
1
2
3
4
5
6
import socket
 
a=input()
sock = socket.socket()
sock.connect(('localhost', 9090))
sock.send(a.encode('utf-8'))
2
29.05.2016, 22:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2016, 22:33
Привет! Вот еще темы с ответами:

Почему синтаксис Python 2.* и Python 3.* так отличается? - Python
Привет! Решил на досуге заняться изучением Python'a. Читаю книгу по второму питону, а пользуюсь третьим. Некоторые вещи приходится...

Python 35 Выполнить файл из python shell - Python
Есть файл do.py : print('start') import os import sys import re import inspect def someFunc(par):

Сложности с переходом с python 2.x на python 3.x - Python
def _load_config(self): for fn in CONFIG_FILES: fn = os.path.expanduser(fn) if os.path.exists(fn): ...

Udp сокеты - Python
Можно ли как-то гарантировано отправить все данные по udp сокетам? Ну или хотя бы с минимальными потерями?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru