Python Af_inet socket

Python Af_inet socket
“Una rete può essere impostata in modo tale che due nodi possano interagire tra loro usando la programmazione di socket. Mentre l'altra presa raggiunge un altro per il collegamento, un socket (nodo) che ascolta su una determinata porta su un indirizzo IP. Durante la connessione del client al server, il server crea il socket ascoltatore. Costituiscono la base della navigazione online. Il primo passo nella programmazione socket è incorporare il pacchetto socket e generare una semplice presa.

Af_inet è il primo argomento, mentre Sock_Stream sarebbe il prossimo. Af_inet rappresenta la famiglia dell'indirizzo IPv4. Contrariamente a IPv6 a AF Inet6, AF Inet si riferisce al ramo o al regno. La comunicazione TCP orientata alla connessione viene definita Sock_Stream. All'interno di questo articolo, daremo un'occhiata all'uso del parametro AF_inet nella programmazione socket di Python all'interno dello strumento Spyder."

Esempio 1

Abbiamo iniziato con il primo esempio di questo articolo per creare una connessione sicura tra la presa e il server host. Per questo, abbiamo importato il modulo socket di Python nella prima riga e il modulo "sys" nella seconda riga utilizzando la parola chiave "import". Successivamente, abbiamo utilizzato il concetto di gestione delle eccezioni utilizzando la dichiarazione di Try-Except di Python due volte in questo codice.

In primo luogo, l'istruzione Try ha creato una nuova presa "S" usando la funzione "socket" di un modulo socket in Python con i suoi due parametri, AF_inet e Sock_Stream. L'AF_INET mostra che la presa utilizzerà la famiglia IPv4 e il SOCK_STR EAM è stato utilizzato per utilizzare il protocollo TCP per il flusso di connessione. La funzione di stampa ha utilizzato la frase semplice da stampare sulla console dello strumento Spyder per visualizzare che la creazione di socket è stata realizzata.

Se il tentativo di ottenere l'indirizzo IP ha esito positivo, la dichiarazione a meno che non venga saltata la clausola e il codice rimanente viene eseguito di conseguenza. L'istruzione Trice è stata utilizzata per visualizzare l'errore sulla console se la creazione di un socket ha utilizzato senza successo la presa.Oggetto di errore e salvandolo in variabile "E". Dopo l'istruzione Try-Except (), abbiamo inizializzato il numero di porta "P" a 80 per la presa, i.e., La porta predefinita della connessione socket a un server Web è 80. Il passaggio successivo è risolvere l'host e collegare la presa con esso utilizzando l'indirizzo IP host.

Per questo, abbiamo utilizzato ancora una volta l'istruzione "Try-Except" nel codice Python. L'istruzione Try è stata avviata con l'uso della funzione gethostbyname () del modulo socket, che ha utilizzato l'URL di Google per ottenere il suo "IP" e salvarlo nella variabile dell'anca. Se l'indirizzo IP è stato trovato correttamente, non eseguirà l'istruzione tranne e continuerà a eseguire le righe successive del codice. In caso contrario, se l'istruzione TREST ha ottenuto il "gaierror" del modulo socket, utilizzerà l'istruzione di stampa per visualizzare che non siamo in grado di risolvere l'IP di un host e il modulo "sys" verrà utilizzato per chiamare la sua "uscita () "Funzione per terminare il programma proprio al momento.

Dopo entrambe le istruzioni Try-Except, abbiamo utilizzato l'indirizzo IP appena ottenuto come "Hip" e il numero di porta "P" per collegare la presa con l'host di Google, i.e., Utilizzando la funzione Connect () del modulo socket. L'istruzione di stampa della riga finale mostrerà che la presa si è connessa correttamente all'host di Google. Salviamo ed eseguiamo il nostro codice in The Spyder per vedere cosa abbiamo in cambio.

Società di importazione
Import sys
Tentativo:
S = socket.Socket (presa.Af_inet, socket.Sock_Stream)
stampa ("realizzare la creazione di socket!")
Tranne la presa.Errore come E:
print ("Impossibile creare socket, errore: %s" %(e))
p = 80
Tentativo:
HIP = Socket.gethostbyname ('www.Google.com ')
Tranne la presa.Gaierror:
Stampa ("Ottieni errore mentre si risolve l'host!")
sys.Uscita()
S.Connect ((Hip, P))
Stampa ("Socket è stato collegato con successo a Google .. !")

Dopo averlo eseguito, abbiamo ricevuto i messaggi di successo sulla nostra schermata della console Spyder. Il primo messaggio ha mostrato che la presa è stata creata perfettamente e la seconda riga ha dimostrato che la connessione è stata anche stabilita.

Esempio 02

Un sistema di comunicazione chiamato UDP invia singoli pacchetti attraverso il Web senza assicurazioni di consegna tempestiva o arrivo garantito. La citazione del giorno è un tale servizio che impiega UDP (QOTD). Abbiamo avviato questo programma con l'importazione del modulo Socket. Successivamente, abbiamo utilizzato il contesto "con" per creare un nuovo socket come "SOC" utilizzando i parametri AF_inet e Sock_Dgram nella funzione socket () del modulo socket per creare una presa Datagram della famiglia IPv4.

Dopo questo, abbiamo usato il "testo" variabile per inizializzare un messaggio vuoto. Il servizio QOTD opera trasmettendo informazioni casuali alla presa; Quando consegniamo un messaggio vuoto, risponde solo con una citazione. Utilizziamo sequenze binarie per le comunicazioni TCP/UDP. Il numero di porta è stato impostato su 17 per ricevere i dati delle quotazioni. Abbiamo usato l'URL di un host e il numero di porta per ottenere l'indirizzo IP "ADR" del particolare host. Questo indirizzo "ADR" e il messaggio vuoto "testo" sono stati passati alla funzione SendTo () del modulo socket con l'oggetto "SOC" per inviarlo al particolare host.

La funzione "Recvfrom" è il metodo utilizzato dalle prese UDP per recuperare le informazioni. La dimensione del buffer funge da parametro. La risposta restituita è un duo (dati, indirizzo), in cui il parametro "indirizzo" è l'identificatore della presa che ha consegnato i dati e il parametro "info" è una sequenza di byte contenente i dati ottenuti. L'istruzione di stampa ha utilizzato la funzione "decodifica" per decodificare e visualizzare le informazioni che abbiamo ottenuto.

Società di importazione
con socket.Socket (presa.Af_inet, socket.Sock_Dgram) come SOC:
testo = b "
p = 17
ADR = ("DJXMMX.net ", p)
Soc.invio (testo, ADR)
Info, indirizzo = SoC.RECVFROM (1024)
Stampa (informazioni.decodificare())

Quando eseguiamo questo programma, abbiamo ottenuto la citazione in cambio.

Conclusione

Questo articolo riguarda l'uso della famiglia AF_inet di moduli socket in Python. Abbiamo provato due esempi per creare un socket, collegarlo all'host, inviare un messaggio vuoto e ricevere le citazioni dall'host.