Я работал над полнофункциональным терминалом Fallout и на данный момент включил в него множество функций, одна из которых — это чат для общения между другими людьми, запускающими скрипт.
Я импровизировал небольшой чат, и он работает. идеально, пока примерно через 10 сообщений туда и обратно сообщения не перестанут приниматься и/или отправляться и в конечном итоге заморозят программу в цикле чистого небытия. Я не уверен, почему и как это исправить. Может ли кто-нибудь помочь?
return_menu() ничего не меняет, он просто выводит его из цикла обратно на домашнюю страницу, не влияет на код системе сообщений каким-либо образом.
Определения
import socket
import time
def charp(userInput, speed):
for char in userInput:
print(char, end='')
sys.stdout.flush()
time.sleep(speed)
e()
def e():
print("")
Код сервера
def server_host():
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(("localhost", 9999))
server.listen()
client, addr = server.accept()
charp("| Save user's name as: ", 0.05)
msgServer = input("")
e()
while True:
msg = client.recv(1024).decode('utf-8')
if msg == 'EXIT':
client.send("EXIT".encode('utf-8'))
break
else:
charp(msgServer + ": " + msg, 0.05)
client.send(input("You: ").encode('utf-8'))
client.close()
server.close()
return_menu()
Код клиента
def client_host():
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("localhost", 9999))
charp("| Save user's name as: ", 0.05)
msgClient = input("")
e()
while True:
client.send(input("You: ").encode('utf-8'))
msg = client.recv(1024).decode('utf-8')
if msg == "EXIT":
client.send("EXIT".encode('utf-8'))
break
else:
charp(msgClient + ": " + msg, 0.05)
client.close()
return_menu()
Подробнее здесь: https://stackoverflow.com/questions/786 ... ing-socket
Система обмена сообщениями в Python с использованием сокета ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение