Форум программистов, компьютерный форум CyberForum.ru

Python: Сети

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

Сокеты Python - Python

26.05.2016, 23:21. Просмотров 831. Ответов 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)
У меня такое чувтсво, что я упустил что то очень важное...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2016, 23:21     Сокеты Python
Посмотрите здесь:

Сокеты
Программы на Python, сайты с использованием PHP/Python/SQL/HTML+CSS+JS
Python Python socket telnet, потоки и ответ сервера
PHP Сети Php сокеты и unix-сокеты
Как через сокеты python получать изображение с экрана компьютера, который состоит в локальной сети? Python
Python Написать скрипт на языке Python
Функции python совместимость с с telnetlib Python
Python Windows socket server python + socket client js
Как в Python 3 получить icmp пакет Python
Python Python подключение по ssh с автоматическим вводом пароля
HTTP. Python 27 Python

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
askurandrio
Заблокирован
27.05.2016, 00:13     Сокеты Python #2
сделайте принт вместо break
Wal1y
0 / 0 / 0
Регистрация: 06.10.2015
Сообщений: 8
27.05.2016, 09:09  [ТС]     Сокеты Python #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'
alex925
2386 / 2052 / 478
Регистрация: 19.03.2012
Сообщений: 7,991
27.05.2016, 11:13     Сокеты Python #4
Цитата Сообщение от Wal1y Посмотреть сообщение
Добавил еще один бесконечный цикл
Semen-Semenich
120 / 120 / 52
Регистрация: 21.03.2016
Сообщений: 415
29.05.2016, 17:28     Сокеты Python #5
alex925, кстати я тоже заморачивался над этим вопросом и поиск в гугл в основном давал такие же результаты с двумя while. поэтому так и остался этот вопрос у меня открыт
Jabbson
Модератор
Эксперт по компьютерным сетям
3071 / 2172 / 431
Регистрация: 03.11.2009
Сообщений: 6,870
Записей в блоге: 3
29.05.2016, 22:33     Сокеты Python #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'))
Yandex
Объявления
29.05.2016, 22:33     Сокеты Python
Ответ Создать тему
Опции темы

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