Stvaranje socket poslužitelja u Pythonu temeljna je vještina za one koje zanima mrežno programiranje. Kao dobavljač utičnica, iz prve sam ruke vidio važnost razumijevanja programiranja utičnica, ne samo iz perspektive hardvera, već i sa strane softvera. U ovom blogu vodit ću vas kroz proces stvaranja socket poslužitelja u Pythonu, a također ću se dotaknuti raznih socket proizvoda koje nudimo.
Razumijevanje utičnica
Prije nego što zaronimo u kreiranje socket poslužitelja, prvo shvatimo što su utičnice. Utičnica je krajnja točka za komunikaciju između dva računala preko mreže. Omogućuje programima način slanja i primanja podataka preko mreže. U Pythonu,utičnicamodul pruža jednostavno i moćno sučelje za rad s utičnicama.
Preduvjeti
Da biste slijedili ovaj vodič, morat ćete imati instaliran Python na vašem računalu. Python možete preuzeti sa službene web stranice (python.org). Osim toga, potrebno je osnovno razumijevanje programiranja u Pythonu.


Stvaranje jednostavnog Socket poslužitelja
Počnimo stvaranjem jednostavnog socket poslužitelja u Pythonu. Sljedeći kod demonstrira osnovni TCP socket poslužitelj:
import socket # Kreirajte socket objekt server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Dobijte naziv lokalnog stroja host = socket.gethostname() port = 12345 # Povežite socket na određenu adresu i port server_socket.bind((host, port)) # Osluškujte dolazne veze server_socket.listen(5) while True: # Uspostavite vezu client_socket, addr = server_socket.accept() print(f"Imam vezu s {addr}") # Pošaljite poruku zahvale klijentu message = "Hvala vam na povezivanju" client_socket.send(message.encode('ascii')) # Zatvorite vezu client_socket.close()
U ovom kodu prvo stvaramo socket objekt pomoćuutičnica.utičnica()funkcija. TheOF_INETparametar označava da ćemo koristiti IPv4 adrese iSOCK_STREAMoznačava da ćemo koristiti TCP vezu.
Zatim povezujemo utičnicu s određenom adresom i portom pomoćuvezati()metoda. Theslušati()metoda govori utičnici da sluša dolazne veze. Parametar5označava najveći broj veza u redu čekanja.
Unutardokpetlje, prihvaćamo dolazne veze pomoćuprihvatiti()metoda. Ova metoda vraća novi socket objekt koji predstavlja vezu i adresu klijenta.
Zatim šaljemo poruku klijentu pomoćuposlati()način i zatvorite vezu pomoćuzatvoriti()metoda.
Rukovanje s više klijenata
Gornji kod obrađuje samo jednog po jednog klijenta. Za rukovanje s više klijenata možemo koristiti niti. Evo primjera socket poslužitelja koji koristi niti za rad s više klijenata:
import socket import threading def handle_client(client_socket, addr): print(f"Imam vezu s {addr}") message = "Hvala na povezivanju" client_socket.send(message.encode('ascii')) client_socket.close() # Stvorite objekt utičnice server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Dohvati naziv lokalnog stroja host = socket.gethostname() port = 12345 # Poveži utičnicu za određenu adresu i port server_socket.bind((host, port)) # Osluškuj dolazne veze server_socket.listen(5) while True: # Uspostavi vezu client_socket, addr = server_socket.accept() # Kreiraj nova nit za obradu klijenta client_thread = threading.Thread(target=handle_client, args=(client_socket, addr)) client_thread.start()
U ovom kodu definiramo funkcijuhandle_client()koji uzima klijentsku utičnicu i adresu kao parametre. Ova funkcija upravlja komunikacijom s klijentom.
Unutardokpetlje, stvaramo novu nit za svakog dolaznog klijenta koristećithreading.Thread()funkcija. Theciljparametar specificira funkciju koja će se izvršiti u niti, aargsparametar specificira argumente koji se prosljeđuju funkciji.
Naši proizvodi za utičnice
Kao dobavljač utičnica, nudimo širok raspon proizvoda utičnica kako bismo zadovoljili različite potrebe. Bilo da tražite aDvostruka podna utičnicaza vaš dom ili ured, aZidna utičnica za brzo punjenjeza brzo punjenje vaših uređaja, ili aPametna utičnicada daljinski upravljate svojim uređajima, pokrivamo vas.
Naša dvostruka podna utičnica dizajnirana je da pruži praktičan i siguran način pristupa struji na podu. Ima izdržljivu konstrukciju i elegantan dizajn koji se uklapa u svaki dekor.
Zidna utičnica za brzo punjenje savršena je za one koji trebaju brzo napuniti svoje uređaje. Podržava brzo punjenje i kompatibilan je sa širokim rasponom uređaja.
Naša pametna utičnica omogućuje daljinsko upravljanje vašim uređajima pomoću pametnog telefona. Možete uključiti i isključiti svoje uređaje, postaviti rasporede i pratiti potrošnju energije.
Zaključak
Stvaranje socket poslužitelja u Pythonu je vrijedna vještina koja može otvoriti mnoge mogućnosti u mrežnom programiranju. Bilo da gradite jednostavnu aplikaciju za chat ili složenu mrežnu uslugu, razumijevanje programiranja utičnica je ključno.
Ako ste zainteresirani za naše proizvode utičnica ili imate pitanja o programiranju utičnica, slobodno nas kontaktirajte radi rasprave o nabavi. Ovdje smo da vam pomognemo pronaći prava rješenja za vaše potrebe.
Reference
- Dokumentacija za programiranje Python utičnica
- Koncepti mrežnog programiranja
