Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import socket
- import threading
- MAX_BYTES = 65535
- def client(port):
- sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- print('\n-------------------\n GEOGRAFIA \n-------------------')
- print('-------------------\nPAÍSES E CAPITAIS\n-------------------')
- comando = input(
- 'ESCOLHA UMA OPÇÃO:\n1 - Consultar palavra\n2 - Incluir palavra\n3 - Editar significado da palavra\n0 - Sair\n')
- while (comando != '0'):
- if (comando == '1'):
- data1 = comando.encode('utf8')
- sock.sendto(data1, ('127.0.0.1', port))
- pais = input('Digite a palavra: ')
- data2 = pais.encode('utf8')
- sock.sendto(data2, ('127.0.0.1', port))
- data, address = sock.recvfrom(MAX_BYTES)
- text = data.decode('utf8')
- print(text)
- elif (comando == '2'):
- data1 = comando.encode('utf8')
- sock.sendto(data1, ('127.0.0.1', port))
- pais = input('Digite a palavra: ')
- data2 = pais.encode('utf8')
- sock.sendto(data2, ('127.0.0.1', port))
- capital = input('Digite o significado: ')
- data3 = capital.encode('utf8')
- sock.sendto(data3, ('127.0.0.1', port))
- data, address = sock.recvfrom(MAX_BYTES)
- text = data.decode('utf8')
- print(text)
- elif (comando == '3'):
- data1 = comando.encode('utf8')
- sock.sendto(data1, ('127.0.0.1', port))
- pais = input('Digite a palavra: ')
- data2 = pais.encode('utf8')
- sock.sendto(data2, ('127.0.0.1', port))
- data, address = sock.recvfrom(MAX_BYTES)
- text = data.decode('utf8')
- print(text, '\n')
- capital = input('Digite o novo significado: ')
- data3 = capital.encode('utf8')
- sock.sendto(data3, ('127.0.0.1', port))
- data, address = sock.recvfrom(MAX_BYTES)
- text = data.decode('utf8')
- print(text)
- else:
- print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\ndigite uma opção válida brother\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
- # break
- comando = input(
- '\nESCOLHA UMA OPÇÃO:\n1 - Consultar palavra\n2 - Incluir palavra\n3 - Editar o significado da palavra\n0 - Sair\n')
- def server(port):
- dicionario_países = {
- 'Nicarágua': 'Manágua',
- 'Somalia': 'Mogadíscio',
- 'Mongolia': 'ULAANBAATAR',
- 'Austria': 'VIENA',
- 'Afeganistão': 'kabul',
- 'África do Sul': 'Pretória',
- 'Albânia': 'Tirana',
- 'Alemanha': 'Berlim',
- 'Andorra': 'Andorra-a-Velha',
- 'Angola': 'Luana',
- 'Árabia Saudita': 'Riade',
- 'Argélia': 'Argel',
- 'Argentina': 'Buenos Aires',
- 'Arménia': 'Erevã',
- 'Austrália': 'Camberra',
- 'Azerbaijão': 'Bacu',
- 'Bangladesh': 'Daca',
- 'Bahamas': 'Nassau',
- 'Barbados': 'Bridgtown',
- 'Berém': 'Manama',
- 'Bélgica': 'Bruxelas',
- 'Belize': 'Berlmopã',
- 'Benim': 'Porto Novo',
- 'Bielorrúsia': 'Minsque',
- 'Bolívia': 'Sucre',
- 'Botsuana': 'Gaborone',
- 'Brasil': 'Brasília',
- 'Brunei': 'Bandar Seri',
- 'Bulgária': 'Sófia',
- 'Burquina Faso': 'Uagadugu',
- 'Burúndi': 'Bujumbura',
- 'Butão': 'Timbu',
- 'Cabo Verde': 'Praia',
- 'Camarões': 'Iundé',
- 'Camboja': 'Pnom Pene',
- 'Canadá': 'Otava',
- 'Catar': 'Doa',
- 'Cazaquistão': 'Astana',
- 'Chade': 'Jamena',
- 'Chile': 'Santiago',
- 'China': 'Pequim',
- 'Chipre': 'Nicósia',
- 'Colômbia': 'Bogotá',
- 'Comores': 'Moroni',
- 'Coreia do Norte': 'Pionguinague',
- 'Coreia do Sul': 'Seul',
- 'Cosovo': 'Pristina',
- 'Costa do Marfim': 'Iamussucro',
- 'Costa Rica': 'São José',
- 'Croácia': 'Zagreb',
- 'Cuaite': 'Cidade do Cuaite',
- 'Cuba': 'Havana',
- 'Dinamarca': 'Copenhaguen',
- 'Egito': 'Cairo',
- 'Emirados Árabes Unidos': 'Abu Dabi',
- 'Equador': 'Quito',
- 'Eslováquia': 'Bratislava',
- 'Espanha': 'Madrid',
- 'Estados Unidos': 'Whashington DC',
- 'Estônia': 'Talim',
- 'Etiópia': 'Adis Abeba',
- 'Filipinas': 'Manila',
- 'Finlândia': 'Helsínquia',
- 'França': 'Paris',
- 'Gabão': 'Libreville',
- 'Gâmbia': 'Banjul',
- 'Gana': 'Acra',
- 'Geórgia': 'Tebílissi',
- 'Granada': 'São Jorge',
- 'Grécia': 'Atenas',
- 'Guatemala': 'Cidade da guatemala',
- 'Guiana': 'Georgetown',
- 'Haiti': 'Porto Princípe',
- 'Hungria': 'Budapeste',
- 'Índia': 'Nova Delí',
- 'Indonésia': 'Jacarta',
- 'Iraque': 'Bagdá',
- 'Irlanda': 'Dublim',
- 'Israel': 'Jerusalém',
- 'Itália': 'Roma',
- 'Jamaica': 'Kingston',
- 'Japão': 'Tóquio',
- 'Jordânia': 'Amã',
- 'Letônia': 'Riga',
- 'Líbano': 'Beirute',
- 'Libéria': 'Monróvia',
- 'Luxemburgo': 'Luxemburgo',
- 'Macedônia': 'Escópia',
- 'Madagascar': 'Antananarivo',
- 'Malásia': 'Cuala Lampur',
- 'Mali': 'Bamaco',
- 'Malta': 'Valeta',
- 'Marrocos': 'Rebate',
- 'México': 'Cidade do México',
- 'Moçambique': 'Maputo',
- 'Mônaco': 'Mônaco',
- 'Noruega': 'Oslo',
- 'Nova Zelândia': 'Wellington',
- 'Omã': 'Mascate',
- 'Peru': 'Lima',
- 'Portugal': 'Lisboa',
- }
- def consulta(pais):
- if (dicionario_países.get(pais) == None):
- return 'Não contem esse país em nosso banco de dados!'
- else:
- return '!!!!!!!!!!!!!!!!!!!\nA capital de "{}": {!r}\n!!!!!!!!!!!!!!!!!!!'.format(pais, dicionario_países[pais])
- def inserir(pais, capital):
- dicionario_países[pais] = capital
- return '!!!!!!!!!!!!!!!!!!!\nO País"{}" e sua Capital "{}" foi adicionada ao banco de dados.\n!!!!!!!!!!!!!!!!!!!'.format(pais,capital)
- def editar(pais, capitalnew):
- dicionario_países[pais] = capitalnew
- return '!!!!!!!!!!!!!!!!!!!\nA capital de "{}" foi editada!!!\n!!!!!!!!!!!!!!!!!!!.'.format(pais)
- sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- sock.bind(('127.0.0.1', port))
- print('Listening at {}'.format(sock.getsockname()))
- while True:
- data1, address = sock.recvfrom(MAX_BYTES)
- comando = data1.decode('utf8')
- data1, address = sock.recvfrom(MAX_BYTES)
- thread = threading.Thread(target=responde_cliente,
- args=[consulta, data1, editar, inserir, sock])
- thread.start()
- responde_cliente(comando, consulta, editar, inserir, sock)
- def responde_cliente(comando, consulta, editar, inserir, socktread):
- socktread = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- if (comando == '1'):
- data2, address = socktread.recvfrom(MAX_BYTES)
- pais = data2.decode('utf8')
- text = consulta(pais)
- data = text.encode('utf8')
- socktread.sendto(data, address)
- # print(text)
- elif (comando == '2'):
- data2, address = socktread.recvfrom(MAX_BYTES)
- pais = data2.decode('utf8')
- data3, address = socktread.recvfrom(MAX_BYTES)
- capital = data3.decode('utf8')
- text = inserir(pais, capital)
- data4 = text.encode('utf8')
- socktread.sendto(data4, address)
- # print(text)
- elif (comando == '3'):
- data2, address = socktread.recvfrom(MAX_BYTES)
- pais = data2.decode('utf8')
- text = consulta(pais)
- data = text.encode('utf8')
- socktread.sendto(data, address)
- data3, address = socktread.recvfrom(MAX_BYTES)
- capital = data3.decode('utf8')
- text = editar(pais, capital)
- data4 = text.encode('utf8')
- socktread.sendto(data4, address)
- comando = input("Digite 'server' para servidor ou 'client' para cliente: ")
- if (comando == 'server'):
- server(1060)
- elif (comando == 'client'):
- client(1060)
- else:
- print('ops!')
Advertisement
Add Comment
Please, Sign In to add comment