Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    2

    [Python] Problema client/server esterno

    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:
    # -*- coding: utf-8 -*
    import pickle
    host = '95.110.230.165'          
    port = 22
    from socket import *    # importa tutti i nomi delle funzioni di socket
    client = socket(AF_INET, SOCK_STREAM) # utilizzo il protocollo tcp/ip
    client.connect((host, port))
    tipo_giocata = raw_input("Scegli cosa giocare tra ambo, terno, quaterna, cinquina: ")
    ruota = raw_input("Su quale ruota vuoi effettuare la giocata? ")
    if tipo_giocata=='ambo':
        num_input=2
    if tipo_giocata=='terno':
        num_input=3
    if tipo_giocata=='quaterna':
        num_input=4
    if tipo_giocata=='cinquina':
        num_input=5
    numeri_da_giocare = [ruota]
    for count in range(0,num_input):
        numero_inserito = raw_input("Inserisci il numero da giocare: ")
        numeri_da_giocare.append(numero_inserito)
    numeri_da_inviare = pickle.dumps(numeri_da_giocare)  
    client.send(numeri_da_inviare)
    esito_estrazione = client.recv(2048)
    print 'Esito estrazione: ', esito_estrazione
    raw_input("Premi invio per terminare")
    client.close()
    Server
    codice:
    # -*- coding: utf-8 -*-
    import pickle, random
    from socket import *
    port = 22
    server = socket(AF_INET, SOCK_STREAM)    # utilizzo il protocollo tcp/ip
    server.bind(('',port))
    server.listen(1)    # accetta al massimo una connessione e rifuta quelle successive
    print ("Connessione con il server stabilita con successo")
    while 1:    # il server resta in ascolto fino alla connessione di un client
      connection, address = server.accept()
      numeri_client_serializzati = connection.recv(2048)
      numeri_ricevuti = pickle.loads(numeri_client_serializzati) 
      ruota_da_giocare = numeri_ricevuti[0] 
      numeri_da_giocare = []
      for count in range(1,len(numeri_ricevuti)):
        numeri_da_giocare.append(int(numeri_ricevuti[count])) 
        ruota = ['Bari','Cagliari','Firenze','Genova','Milano','Napoli','Palermo','Roma','Torino','Venezia','Nazionale']
      for count in range(0,len(ruota)):    # ripete l'estrazione dei numeri per ogni ruota    
        numeri_ruota = random.sample(range(1,91),5)    # estrae 5 numeri a caso in un insieme compreso tra 1 e 90
        print (ruota[count] , numeri_ruota)    # controllo la ruota con quella ricevuta dal client
         if ruota[count] == ruota_da_giocare:
          contatore = 0
          for i in range(0,len(numeri_da_giocare)):
            for j in range(0,len(numeri_ruota)):
              if (numeri_da_giocare[i] == numeri_ruota[j]):
                contatore = contatore + 1
             
          if(contatore == 0):
            esito_estrazione = "Mi dispiace, non hai vinto."
          if(contatore == 1):
            esito_estrazione = "Mi dispiace, non hai vinto."
          if(contatore == 2):
            esito_estrazione = "Complimenti, hai fatto ambo!!!"
          if(contatore == 3):
            esito_estrazione = "Complimenti, hai fatto terno!!!"
          if(contatore == 4):
            esito_estrazione = "Complimenti, hai fatto quaterna!!!"
          if(contatore == 5):
            esito_estrazione = "Complimenti, hai fatto cinquina!!!"
      connection.sendall(esito_estrazione)
      connection.close()

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Per il server stai usando la porta 22 che è tipicamente destinata ad SSH. Stai sviluppando una tua applicazione client/server, devi usare una porta "custom" tra quelle non registrate per servizi standard, a meno che tu non abbia intenzione di sfruttare proprio il protocollo SSH per la comunicazione (caso in cui le cose sono decisamente più complicate).
    every day above ground is a good one

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    2
    Come dati per connettermi al server, mi hanno dato l'ip e la porta che vedi nel codice. E devo far collegare client e server lì. Se la porta 22 è riservata non si può fare? Tramite ftp mi collego al sito. Posso fare qualcosa del genere tramite ftp?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.