Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Python - Problema client/server esterno
Forum - Python - Problema client/server esterno

Avatar
Berserk (Normal User)
Newbie


Messaggi: 1
Iscritto: 19/09/2016

Segnala al moderatore
Postato alle 10:03
Lunedì, 19/09/2016
Un saluto a tutto il forum, sono nuovo.
Devo fare questo programmino semplice e se lo provo sul pc fila tutto liscio. Il problema è che lo devo provare su un server esterno, che richiede anche user e password per entrare.
Ho pensato di impostare ftp su lato server ma non c'è niente da fare. Se lascio tutto così come ve lo incollo, alla fine sul lato client mi dice "ssh-2.0-openssh_5.3 python".
Sicuramente devo mettere qualcosa sul lato server, ma come devo impostarlo?
Client]
Codice sorgente - presumibilmente Python

  1. # -*- coding: utf-8 -*
  2. import pickle
  3. host = '95.110.230.165'          
  4. port = 22
  5. from socket import *    # importa tutti i nomi delle funzioni di socket
  6. client = socket(AF_INET, SOCK_STREAM) # utilizzo il protocollo tcp/ip
  7. client.connect((host, port))
  8. tipo_giocata = raw_input("Scegli cosa giocare tra ambo, terno, quaterna, cinquina: ")
  9. ruota = raw_input("Su quale ruota vuoi effettuare la giocata? ")
  10. if tipo_giocata=='ambo':
  11.     num_input=2
  12. if tipo_giocata=='terno':
  13.     num_input=3
  14. if tipo_giocata=='quaterna':
  15.     num_input=4
  16. if tipo_giocata=='cinquina':
  17.     num_input=5
  18. numeri_da_giocare = [ruota]
  19. for count in range(0,num_input):
  20.     numero_inserito = raw_input("Inserisci il numero da giocare: ")
  21.     numeri_da_giocare.append(numero_inserito)
  22. numeri_da_inviare = pickle.dumps(numeri_da_giocare)  
  23. client.send(numeri_da_inviare)
  24. esito_estrazione = client.recv(2048)
  25. print 'Esito estrazione: ', esito_estrazione
  26. raw_input("Premi invio per terminare")
  27. client.close()



Server
Codice sorgente - presumibilmente Python

  1. # -*- coding: utf-8 -*-
  2. import pickle, random
  3. from socket import *
  4. port = 22
  5. server = socket(AF_INET, SOCK_STREAM)    # utilizzo il protocollo tcp/ip
  6. server.bind(('',port))
  7. server.listen(1)    # accetta al massimo una connessione e rifuta quelle successive
  8. print ("Connessione con il server stabilita con successo")
  9. while 1:    # il server resta in ascolto fino alla connessione di un client
  10.   connection, address = server.accept()
  11.   numeri_client_serializzati = connection.recv(2048)
  12.   numeri_ricevuti = pickle.loads(numeri_client_serializzati)
  13.   ruota_da_giocare = numeri_ricevuti[0]
  14.   numeri_da_giocare = []
  15.   for count in range(1,len(numeri_ricevuti)):
  16.     numeri_da_giocare.append(int(numeri_ricevuti[count]))
  17.     ruota = ['Bari','Cagliari','Firenze','Genova','Milano','Napoli','Palermo','Roma','Torino','Venezia','Nazionale']
  18.   for count in range(0,len(ruota)):    # ripete l'estrazione dei numeri per ogni ruota    
  19.     numeri_ruota = random.sample(range(1,91),5)    # estrae 5 numeri a caso in un insieme compreso tra 1 e 90
  20.     print (ruota[count] , numeri_ruota)    # controllo la ruota con quella ricevuta dal client
  21.      if ruota[count] == ruota_da_giocare:
  22.       contatore = 0
  23.       for i in range(0,len(numeri_da_giocare)):
  24.         for j in range(0,len(numeri_ruota)):
  25.           if (numeri_da_giocare[i] == numeri_ruota[j]):
  26.             contatore = contatore + 1
  27.          
  28.       if(contatore == 0):
  29.         esito_estrazione = "Mi dispiace, non hai vinto."
  30.       if(contatore == 1):
  31.         esito_estrazione = "Mi dispiace, non hai vinto."
  32.       if(contatore == 2):
  33.         esito_estrazione = "Complimenti, hai fatto ambo!!!"
  34.       if(contatore == 3):
  35.         esito_estrazione = "Complimenti, hai fatto terno!!!"
  36.       if(contatore == 4):
  37.         esito_estrazione = "Complimenti, hai fatto quaterna!!!"
  38.       if(contatore == 5):
  39.         esito_estrazione = "Complimenti, hai fatto cinquina!!!"
  40.   connection.sendall(esito_estrazione)
  41.   connection.close()


Ultima modifica effettuata da Berserk il 19/09/2016 alle 10:03
PM Quote