Форум сайта python.su
0
Привет, программисты! Мне нужна ваша помощь! Начал изучать socket'ы и не могу найти решение следующей проблемы. Мне нужно получить от клиента сообщение ‘a’ и что бы выполнилось какое-то действие.
Вот мой код:
Клиент:
import socket, sys, struct host = 'localhost' port = 8013 addr = (host, port) while True: try: tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) tcp_socket.connect(addr) except ConnectionRefusedError: print('\033[31m[ERROR] Невозможно поключиться к серверу.\033[0m') break data = input('\033[32mЧто отправить серверу: \033[0m') if not data : tcp_socket.close() sys.exit(1) elif data == 'close' or data =='c': tcp_socket.close() sys.exit(1) data = str.encode(data) tcp_socket.send(data) data = bytes.decode(data) data = tcp_socket.recv(1024) if not data: print('\033[32mПриняли:\033[31m \033[31mпусто.\033[0m') else: print('\033[32mПриняли:\033[31m',data.decode('utf-8'),"\033[0m" tcp_socket.close()
import socket, sys s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = 'localhost' port = 8013 addr = (host,port) tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) tcp_socket.bind(addr) tcp_socket.listen(10) while True: print('\033[31mОжидание...\033[0m') conn, addr = tcp_socket.accept() data = conn.recv(1024) if data == 'a': print ('123') if not data: print('\033[31mПустое сообщение от \033[32mIP:\033[0m', addr[0],'\033[32mПорт:\033[0m', addr[1]) conn.close() break else: print('\033[32mIP:\033[0m', addr[0],'\033[32mПорт:\033[0m', addr[1]) print('\033[32mСообщение:\033[0m',data.decode('utf-8')) print('\033[32mСообщение без utf-8:\033[0m',data) message = "Труе битч" conn.send(message.encode('utf-8')) conn.close() tcp_socket.close()
if data == 'a': print ('123')
if data == 'b\'a\'': print ('123')
Отредактировано brainrtp (Авг. 16, 2016 21:51:16)
Офлайн
103
if data == b'a':
Отредактировано terabayt (Авг. 16, 2016 22:04:40)
Офлайн
0
terabaytБлагодарю1
if data == b'a':
Офлайн
0
terabaytХм… А почему действие продолжается? Разве оно не должно было закончится?
Офлайн
103
if not data:
elif not data:
Офлайн
0
terabaytблагодарю!
Офлайн