Forventninger:
Her er noen viktige punkter kan læres fra denne artikkelen
Generelt sett opp diagram:
System A og B skal i stand til å pinge hverandre.
Antagelser eller begrensninger:
Merk: Du kan sjekke referanse for å prøve ut Send og motta UDP -pakker via Linux CLI før du går for Python -filer for å gjøre den samme oppgaven.
Python -filer:
Det er to Python -filer server.py og klient.py. Serverfil og klientfil skal være til stede i henholdsvis serversystem og klientsystem.
Server.py
ImportkontaktKlient.py
ImportkontaktSend/motta UDP -pakke:
La oss ta et eksempel som om vi vil sende UDP -pakke fra system A til system B. Så i serverklient-konsept må vi kjøre server på system B-side og klient på systemet en side.
Vi har også gyldige IP -adresser.
System A IP: 192.168.1.6Nå i motsetning til å sende og motta UDP -pakker via Linux CLI vil vi løpe server.py i system, B [192.168.1.102] Og så vil vi løpe klient.py I system A [192.168.1.6].
Hvordan kjøre server.PY i 192.168.1.102?
Her er kommandoen for å kjøre server.py
$ python3 -server.PY 192.168.1.102 4444Her er skjermbildet
Her er det to argumenter for Python -programmet. 1st Argument er IP -adresse til serveren selv, her er det 192.168.1.102 og 2nd Argument er port som serveren som skal lytte, her har vi valgt 4444.
Hvordan kjøre klient.PY i 192.168.1.6?
Her er kommandoen for å kjøre klient.py
$ Python3 -klient.PY 192.168.1.102 4444Her er skjermbildet
Her er det to argumenter for Python -programmet. 1st Argument er IP -adresse til serveren, her er det 192.168.1.102 og 2nd Argument er port der serveren kjører. For vårt eksempel er det 4444.
Send eller motta litt tekst:
Nå som du ser er vi klare til å kommunisere mellom to systemer. Men vi må starte fra klienten først. La oss skrive noe i klienten og se om det når til serveren eller ikke.
Send data fra klienten: “Jeg er fra klienten”
Skjermbilde fra klient:
Nå skal denne klientmeldingen komme til serveren. Her er serverskjermbildet.
Nå kan vi se på serversiden også vi har mulighet til å sende noe til klienten. La oss prøve det.
Send data fra klienten: “Jeg er fra server”
Serverskjermbilde:
Og her er skjermbildet på klientsiden.
Nå vil dette gå i uendelige tider til vi stopper Python -programmet ved å bruke Ctrl+C.
Sjekk UDP -pakke i Wireshark:
Nå har vi gjort litt kommunikasjon, men hvordan blir vi kjent med at UDP ble brukt til å sende eller motta disse pakkene. Så vi kan sjekke fangst i Wireshark.
La oss se pakken når klienten [192.168.1.6] sendte data [“Jeg er fra klient”] til Server [192.168.1.6].
Kodeforklaring:
For grunnleggende Python -kode Forklaring Se “Python Socket File Transfer Send” i referanseseksjonen.
Vi vil bare forklare viktige linjekoder for klient og server python -fil. Det er nyttige kommentarer i klienten og serverkoden.
Klientkodeforklaring:
Hvis Len (SYS.argv) == 3:Ovennevnte linje er nødvendig for å sjekke om brukeren har bestått nødvendige obligatoriske argumenter. Ellers vil programmet avslutte. Samme sjekk er der i serverprogrammet.
S = stikkontakt.stikkontakt (stikkontakt.Af_inet, stikkontakt.SOCK_DGRAM, 0)Ovennevnte linje er å lage socket -server med UDP [SOCK_DGRAM] protokoll. Samme kode er der på serveren.py.
Mens sant:Å kjøre program i uendelig sløyfe til brukeren gjør Ctrl+C. Samme kode er der på serveren.py.
s.SendTo (send_data.Encode ('UTF-8'), (IP, port))Å sende data for nevnt IP og havn Antall.
data, adresse = S.RECVFROM (4096)For å motta data som kommer fra serveren. Samme kode er der på serveren.py.
Serverkode Forklaring:
s.SendTo (send_data.Encode ('UTF-8'), adresse)Send data til klientadresse.
Konklusjon:
Vi kan sende eller motta UDP -data ved hjelp av Python -programmet. Internt bruker den serverklientmekanismen.
Referanser:
Å forstå TCP: https: // linuxhint.com/tcp_packet_capture_analyse/
Å forstå UDP: https: // linuxhint.com/udp_wireshark_analyse/
Send og motta UDP -pakker via Linux CLI:
https: // linuxhint.com/send_receive_udp_packets_linux_cli/
Python Socket File Transfer Send:
https: // linuxhint.com/python_socket_file_transfer_send/