Вход
Регистрация
andreymal
Всё
Blender
Комментарий к посту
Сокеты в Python 3: TCP, клиент, сервер
anonymous
4 декабря 2016 г. 10:19
Здравствуйте скажите пожалуйста в чём проблема, хочу отправлять клиенту переменные но у меня работает почему?
Скрипт сервера
import socket #Импортируем модуль
s = socket.socket() #Создаём сокет, с помощью этой
#переменной мы будем им
#управлять
host = '0.0.0.0' #Заводим хост (IP-адрес)
port = 21 #Заводим порт
s.bind((host, port)) #Привязываем
s.listen(1) #Прослушиваем, указываем максимальное
#кол-во соединений
looking = True #Присваиваем переменной истинное значение
while looking ==True: #Выполнять пока значение перемнной истинно
print("Looking...") #Выводим в консоль надпись
c, addr = s.accept() #Принимаем входящее соединение,
#возвращаем входящимй сокет и адрес
#Адрес состоит из IP-адреса и порта.
print("Got a connection: ", addr) #Выводим надпись в консоль
try: #Делает если не встретил ошибки
print("Sent!")#Выводит в консоль надпись
data = str("Hello")
c.sendto(data, (host, port)) #Отправляет закодированное
#сообщение
except: #Если try встретил ошибку и она совпадает с этой, то
#будут выполнятся данные команды
print("can't send...") #Выводит в консоль надпись
looking = False #Присваивает переменной отрицательное значение
while looking == False: #Делать пока значение переменной
#отрицательное
c.close() #Завершить соединение входящего сокета
break #Остановить цикл
s.close() #Закрываем соединение с серверным сокетом
скрипт клиента
import socket #Импортируем модуль
s = socket.socket() #Создаём сокет, с помощью этой
#переменной мы будем им
#управлять
host = '127.0.0.1' #Заводим хост (IP-адрес)
port = 21 #Заводим порт
s.connect((host, port)) #Подключаемся к серверу
data, addr = s.recvfrom(1024) #Читает сообщение определённого размера
#Возвращает полученные данные и адрес
print("data not decoded:", data) #Выводит полученные данные кодированные
print("data decoded", data.decode()) #Выводит данные раскодированные
print("socket ended: ") #Выводит надпись
s.close() #Завершает сокет
Комментировать
Вы anonymous
Title
0:00
PL
Скрипт сервера
import socket #Импортируем модуль
s = socket.socket() #Создаём сокет, с помощью этой
#переменной мы будем им
#управлять
host = '0.0.0.0' #Заводим хост (IP-адрес)
port = 21 #Заводим порт
s.bind((host, port)) #Привязываем
s.listen(1) #Прослушиваем, указываем максимальное
#кол-во соединений
looking = True #Присваиваем переменной истинное значение
while looking ==True: #Выполнять пока значение перемнной истинно
print("Looking...") #Выводим в консоль надпись
c, addr = s.accept() #Принимаем входящее соединение,
#возвращаем входящимй сокет и адрес
#Адрес состоит из IP-адреса и порта.
print("Got a connection: ", addr) #Выводим надпись в консоль
try: #Делает если не встретил ошибки
print("Sent!")#Выводит в консоль надпись
data = str("Hello")
c.sendto(data, (host, port)) #Отправляет закодированное
#сообщение
except: #Если try встретил ошибку и она совпадает с этой, то
#будут выполнятся данные команды
print("can't send...") #Выводит в консоль надпись
looking = False #Присваивает переменной отрицательное значение
while looking == False: #Делать пока значение переменной
#отрицательное
c.close() #Завершить соединение входящего сокета
break #Остановить цикл
s.close() #Закрываем соединение с серверным сокетом
скрипт клиента
import socket #Импортируем модуль
s = socket.socket() #Создаём сокет, с помощью этой
#переменной мы будем им
#управлять
host = '127.0.0.1' #Заводим хост (IP-адрес)
port = 21 #Заводим порт
s.connect((host, port)) #Подключаемся к серверу
data, addr = s.recvfrom(1024) #Читает сообщение определённого размера
#Возвращает полученные данные и адрес
print("data not decoded:", data) #Выводит полученные данные кодированные
print("data decoded", data.decode()) #Выводит данные раскодированные
print("socket ended: ") #Выводит надпись
s.close() #Завершает сокет