我有這個程序客戶端和服務器在udp,單線程。任何人都可以幫助我在多線程中進行轉換嗎? (有葡萄牙在這個代碼,因爲我是巴西人笑) (客戶端和服務器都在答案)Python:多線程程序udp
-2
A
回答
1
服務器:
def server():
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('127.0.0.1', 9999))
print('Escutando em {}'.format(sock.getsockname()))
while True:
rec, address = sock.recvfrom(MAX_BYTES)
text = rec.decode('utf-8')
if text == "Inserir":
# recebe uma palavra e um signficado
termo_inserir, end = sock.recvfrom(1024)
significado, end = sock.recvfrom(1024)
termo_inserir = termo_inserir.decode('utf-8')
significado = significado.decode('utf-8')
# insere a palvra e sig no dicionário
Mat[termo_inserir] = significado
if text == 'Excluir':
termo_excluir, end = sock.recvfrom(1024)
termo_excluir = termo_excluir.decode('utf-8')
del Mat[termo_excluir]
if text == "Consultar":
men_cons, end = sock.recvfrom(1024)
men_cons = men_cons.decode('utf-8')
# consulta no dic
if men_cons in Mat:
resposta = Mat[men_cons]
sock.sendto(resposta.encode('utf-8'), end)
else:
sock.sendto("Termo não encontrado. Tente inserir.".encode("utf-8"), end)
if text == 'Editar':
termo_excluir, end = sock.recvfrom(1024)
termo_excluir = termo_excluir.decode('utf-8')
if termo_excluir in Mat:
del Mat[termo_excluir]
significado, end = sock.recvfrom(1024)
significado = significado.decode('utf-8')
Mat[termo_excluir] = significado
sock.sendto(("Significado do termo: " + termo_excluir + " foi alterado para: "+ significado).encode("utf-8"), end)
else:
sock.sendto(("Termo: " + termo_excluir + " não existe no dicionário. Tente inserir.").encode("utf-8"), end)
if __name__ == '__main__':
while True:
listen_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
listen_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
listen_sock.bind(('127.0.0.1', 9999))
addr = listen_sock.getsockname()
# Thread roda a funcao handle_client() de forma autonoma
# e concorrente dentro do loop
thread = threading.Thread(target=server,
args=[],
daemon=True)
thread.run()
print('Conexão de {}'.format(addr))
+0
這包含一個錯誤♂️ – jovss25
0
客戶:
進口插座 MAX_BYTES = 65535 而True:
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
print("*****************************************\n"
"Dicionário Termos Matemáticos \n"
"*****************************************")
text = str(input("---------------------------------\n"
"Para consulta, digite: Consultar\n"
"Para inserir, digite: Inserir\n"
"Para editar, digite: Editar \n"
"Para excluir, digite: Excluir\n"
"Para sair, digite: Sair\n"
"---------------------------------\n"
"O que você deseja fazer?\n"
))
end = ('127.0.0.1', 9999)
sock.sendto(text.encode("utf-8"), end)
if text == 'Inserir':
x = str(input("Digite o termo a ser inserido:\n"))
y = str(input("Digite o significado do termo a ser inserido: \n"))
sock.sendto(x.encode("utf-8"), end)
sock.sendto(y.encode("utf-8"), end)
print("Termo", x, "foi inserido. Seu significado é: ", y)
elif text == 'Excluir':
x = str(input("Digite o termo a ser excluido:\n"))
sock.sendto(x.encode("utf-8"), end)
print("Termo", x, "foi excluído.\n")
elif text == 'Consultar':
text = str(input("Digite o termo a ser procurado: \n"))
i = text.encode('utf-8')
sock.sendto(i, end)
i, address = sock.recvfrom(MAX_BYTES)
text = i.decode('utf-8')
print("Significado: " + text + "\n")
elif text == 'Editar':
x = str(input("Digite o termo a ser editado: \n"))
sock.sendto(x.encode("utf-8"), end)
y = str(input("Digite o significado do termo a ser editado: \n"))
sock.sendto(y.encode('utf-8'), end)
significado, end = sock.recvfrom(1024)
significado = significado.decode('utf-8')
print(significado)
elif text == 'Sair':
print("Você acabou por aqui. Até a próxima.")
break
相關問題
- 1. UDP - 多線程
- 2. 多線程UDP服務器與Python
- 3. JBoss Netty和UDP:多線程?
- 4. 多線程Udp套接字編程
- 5. Python 3 UDP多線程和多重處理
- 6. 在多線程程序中不接收UDP和輸出數據
- 7. Python多線程
- 8. 多線程python
- 9. Python多線程
- 10. 多線程PHP與多線程Python
- 11. 多線程程序
- 12. 測試多線程UDP服務器(Java)
- 13. Java UDP多線程的最佳實踐
- 14. .Net使用多線程的UDP
- 15. 與Netty的多線程UDP服務器
- 16. Java多線程UDP服務器錯誤
- 17. 帶epoll的多線程UDP服務器?
- 18. Java - UDP多線程服務器
- 19. 多線程udp服務器/客戶端
- 20. 問題實現多線程UDP服務器(線程池?)
- 21. python多線程編程
- 22. Python多線程py2exe
- 23. Android Python多線程
- 24. Python多線程「ping」
- 25. 硒python多線程
- 26. 多線程在python
- 27. python線程,多線程與threading.thread
- 28. Python多線程 - 主線程塊socket.connect
- 29. 多線程Python:線程通信
- 30. python多線程長線程運行
您不使用類似的答案。 把它放在你的問題。 –