Creare un server da zero è un compito arduo. Tuttavia, ciò può migliorare notevolmente le tue capacità di programmazione e può consentirti di modificarlo in base alle tue esigenze. Questo tutorial utilizzerà Python e la programmazione socket di basso livello per creare un server in modo che i client possano comunicare tra loro. Questo coprirà anche solo il processo su Windows. Alcune informazioni verranno fornite nelle istruzioni, ma se si desidera solo il codice, è fornito nelle figure. (Nota: le istruzioni qui presentate sono solo le basi).
Passi
Metodo 1 di 3: installazione di Python
Passaggio 1. Scarica Python
Vai al sito Web principale di Python e scarica Python 2.7.10. Dopo il download, esegui i passaggi del programma di installazione di Python con le impostazioni predefinite. Questo collegamento è fornito qui
Passaggio 2. Esegui IDLE (GUI Python)
Vai nella cartella Python 2.7 ed esegui IDLE (Python GUI), python dovrebbe ora trovarsi nel menu di avvio in cui si trova IDLE.
Passaggio 3. Crea un nuovo file
Vai su File nell'angolo in alto a sinistra della finestra appena aperta e seleziona Nuovo file, dovresti avere una finestra vuota aperta con il titolo Senza titolo.
Metodo 2 di 3: creazione del server
Passaggio 1. Importa i moduli necessari
I due moduli necessari per questo codice sono "socket" e "threading". Questo può essere fatto digitando nella prima riga “from socket import *” e nella riga successiva “import threading”.
Passaggio 2. Crea un nuovo thread
Questo gestirà l'abbinamento di 2 client l'uno con l'altro. I thread sono processi che possono essere eseguiti durante l'esecuzione del programma principale. Digita esattamente come mostra la figura. Questo imposterà le variabili nel thread in modo che possano essere chiamate in seguito.
Passaggio 3. Crea processo thread
Affinché i clienti possano comunicare direttamente, è necessario scambiarsi le informazioni reciproche, che includono il loro indirizzo IP e quale porta stanno utilizzando. Per fare ciò è necessario creare un oggetto socket che può essere fatto con “variableName = socket(AF_NET, SOCK_DGRAM)”. Questo creerà un oggetto socket che usa il protocollo UDP. Quindi Associa il socket al tuo indirizzo IP con un certo numero di porta con "roomSocket.bind((' ', self.port))" L'area vuota rappresenta l'indirizzo IP del tuo PC all'interno della tua rete locale e self.port assegna il numero di porta incluso quando chiami questo thread. L'ultima cosa che devi fare con questo socket è inviare informazioni attraverso di esso. Poiché si tratta di un socket UDP, devi semplicemente conoscere l'IP e la porta del computer a cui stai inviando le informazioni, la sintassi per l'invio è "socketName.sendto(IP, port)"
Passaggio 4. Creare le variabili globali
Per questo passaggio sarà necessario definire diverse variabili, che includono un elenco di utenti, numeri di porta, conteggio client, client per il thread e l'ID della stanza. Dovrai anche creare un socket in modo che il tuo server possa interagire con Internet. Questo viene fatto creando un nuovo oggetto socket e associandolo al tuo indirizzo IP con un certo numero di porta. (Il numero di porta può essere qualsiasi cosa, ma di solito è qualcosa di alto per evitare che un altro processo lo utilizzi o utilizzi numeri di porta riservati.)
Passaggio 5. Creare il processo del server principale
Ciò richiederà l'indirizzo del client e avvierà il thread creato in precedenza. Ciò include l'attesa di ricevere i dati dal buffer e il recupero dell'indirizzo del client e il salvataggio per l'utilizzo nel thread. Il modo per ottenere informazioni dal tuo socket è chiamare con "socketName.recvfrom(1024)", il numero qui è solo la quantità di byte che vengono letti alla volta. In questo esempio lo stiamo memorizzando in una variabile chiamata userAddr, e una volta che ciò accade è possibile salvare questo indirizzo nell'elenco creato nel passaggio 4. L'istruzione if creerà un thread di una stanza se due persone si connettono e creerà solo una stanza quando si verificano due connessioni diverse.
Passaggio 6. Salva il tuo lavoro
Questo dovrebbe essere fatto in una directory facile da raggiungere in modo che sia possibile accedervi facilmente per i test.
Metodo 3 di 3: test
Passaggio 1. Creare un client di prova
Questo è un client molto semplice che gestirà solo se il server ha inviato o meno le informazioni dell'altro client al client corrente. Tieni presente che, a differenza del codice server, questo codice richiede un nome server. Se stai eseguendo tutto questo su un computer, il nome del server dovrebbe essere il nome del tuo PC. Puoi scoprire il nome del tuo computer facendo clic con il pulsante destro del mouse su Risorse del computer e andando su Proprietà.
Passaggio 2. Salva il tuo lavoro
Dovrebbe trovarsi nella stessa directory del codice del server.
Passaggio 3. Aprire tre diverse finestre di comando
Vai al menu di avvio e nella barra di ricerca digita "cmd" e premi invio. Fallo tre volte. Le finestre dovrebbero essere così.
Passaggio 4. Eseguire i programmi
Dovrai digitare il percorso esatto quando usi la finestra di comando. Sarà necessario eseguire prima il codice del server su una finestra di comando e poi il codice del client di prova sulle altre due. Se tutto è andato a buon fine otterrai qualcosa di questi messaggi nella tua finestra.
Avvertenze
- Questo programma funzionerà solo quando lo si esegue e testa i client sulla stessa rete locale.
- Python 2.7.10 è obsoleto e si sta avvicinando alla fine del suo supporto. Per continuare a creare buoni server, si consiglia di installare invece l'ultima versione di Python 3.