У меня есть проект, над которым я работаю, но я изложил проблему в небольшом примере кода ниже. Сначала я создаю сокет, а затем порождаю поток для приема соединений (чтобы я мог подключить несколько клиентов). Когда я получаю соединение, я порождаю другой поток, который будет прослушивать это соединение. Я также нахожусь в цикле, который дает мне подсказку, где я могу ввести что-нибудь, и это напечатает это мне обратно.
Проблема заключается в том, что я получаю что-то через сокет. Он выведет на экран. Но когда я пытаюсь что-то набрать в консоли, текст, который находится на моей консоли и поступает из сокета, удаляется. Я хочу, чтобы все из розетки оставалось на экране.
import sys
import socket
from _thread import *
def recv_data(conn):
while True:
data = conn.recv(256)
print(data)
def accept_clients(sock):
while True:
conn, addr = sock.accept()
print("\nConnected with %s:%s\n" % (addr[0], str(addr[1])))
start_new_thread(recv_data, (conn,))
def start_socket(ip, port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("Socket created")
try:
port = int(port)
except ValueError:
print("Invalid port number.")
return
try:
sock.bind((ip, int(port)))
except socket.error as msg:
print("Bind failed. Error Code : %s" % (msg))
return
print("Socket bind complete")
sock.listen(5)
print("Socket now listening")
start_new_thread(accept_clients, (sock,))
def get_input():
while True:
data = input("cmd> ")
print(data)
start_socket('localhost', 5555)
get_input()
Здесь можно найти фотографии того, что он делает: https://imgur.com/a/hCWznfE
). It takes my input and prints it back to me.">


