పైథాన్‌లో సాకెట్ ప్రోగ్రామింగ్ అంటే ఏమిటి మరియు దానిని ఎలా నేర్చుకోవాలి?



Pick రగాయ మరియు సాకెట్లను ఉపయోగించి పైథాన్ వస్తువులను బదిలీ చేయడంతో పాటు క్లయింట్-సర్వర్ కమ్యూనికేషన్లతో పాటు పైథాన్‌లో సాకెట్ ప్రోగ్రామింగ్ అంటే ఏమిటో తెలుసుకోండి.

ఇంటర్నెట్ కాదనలేని విధంగా ‘ఉనికి యొక్క ఆత్మ’ గా మారింది మరియు దాని కార్యాచరణను ‘కనెక్షన్లు’ లేదా ‘నెట్‌వర్క్‌లు’ కలిగి ఉంటాయి. ఈ నెట్‌వర్క్‌లు చాలా కీలకమైన ఫండమెంటల్స్‌ను ఉపయోగించి సాధ్యమవుతాయి సాకెట్లు. ఈ వ్యాసం పైథాన్‌లో సాకెట్ ప్రోగ్రామింగ్‌తో వ్యవహరించే అన్ని ప్రాంతాలను వివరిస్తుంది. ఈ కనెక్షన్లను చేయడానికి సాకెట్లు మీకు సహాయపడతాయి , నిస్సందేహంగా, ఇది సులభం చేస్తుంది.

ఈ వ్యాసంలో ఉన్న అన్ని విషయాలను శీఘ్రంగా చూద్దాం:





సాకెట్లను ఎందుకు ఉపయోగించాలి?
పైథాన్‌లో సాకెట్లు అంటే ఏమిటి?
పైథాన్‌లో సాకెట్ ప్రోగ్రామింగ్ ఎలా సాధించాలి
సర్వర్ అంటే ఏమిటి?
క్లయింట్ అంటే ఏమిటి?
ఎకో క్లయింట్-సర్వర్
బహుళ కమ్యూనికేషన్లు
పైథాన్ వస్తువులను బదిలీ చేస్తోంది



సాకెట్లను ఎందుకు ఉపయోగించాలి?

సాకెట్స్ నెట్‌వర్కింగ్ యొక్క వెన్నెముక. అవి రెండు వేర్వేరు ప్రోగ్రామ్‌లు లేదా పరికరాల మధ్య సమాచార బదిలీని సాధ్యం చేస్తాయి. ఉదాహరణకు, మీరు మీ బ్రౌజర్‌ను తెరిచినప్పుడు, క్లయింట్‌గా మీరు సమాచార బదిలీ కోసం సర్వర్‌కు కనెక్షన్‌ని సృష్టిస్తున్నారు.

జావాలో సమకాలీకరణ అంటే ఏమిటి

ఈ కమ్యూనికేషన్ గురించి మరింత లోతుగా డైవ్ చేయడానికి ముందు, ఈ సాకెట్లు ఏమిటో ఖచ్చితంగా తెలుసుకుందాం.

సాకెట్స్ అంటే ఏమిటి?

సాధారణంగా, సాకెట్లు డేటాను పంపడం మరియు స్వీకరించడం కోసం నిర్మించిన ఇంటీరియర్ ఎండ్ పాయింట్స్. ఒకే నెట్‌వర్క్‌లో రెండు సాకెట్లు ఉంటాయి, ప్రతి కమ్యూనికేషన్ పరికరం లేదా ప్రోగ్రామ్‌కు ఒకటి. ఈ సాకెట్లు IP చిరునామా మరియు పోర్ట్ కలయిక. ఒకే పరికరం ఉపయోగించబడుతున్న పోర్ట్ సంఖ్య ఆధారంగా ‘n’ సాకెట్ల సంఖ్యను కలిగి ఉంటుంది. వివిధ రకాల ప్రోటోకాల్‌ల కోసం వివిధ పోర్ట్‌లు అందుబాటులో ఉన్నాయి. కొన్ని సాధారణ పోర్ట్ సంఖ్యలు మరియు సంబంధిత ప్రోటోకాల్‌ల గురించి మరింత తెలుసుకోవడానికి ఈ క్రింది చిత్రాన్ని చూడండి:




సాధారణ పోర్టులు-సాకెట్ప్రోగ్రామింగ్ఇన్ పైథాన్-ఎడురేకా

ఇప్పుడు మీరు సాకెట్ల భావన గురించి స్పష్టంగా ఉన్నారు, ఇప్పుడు పైథాన్ యొక్క సాకెట్ మాడ్యూల్‌ను పరిశీలిద్దాం:

పైథాన్‌లో సాకెట్ ప్రోగ్రామింగ్ ఎలా సాధించాలి:

పైథాన్‌లో సాకెట్ ప్రోగ్రామింగ్ సాధించడానికి, మీరు దిగుమతి చేసుకోవాలి సాకెట్ మాడ్యూల్ లేదా . ఈ మాడ్యూల్ సాకెట్లను సృష్టించడానికి అవసరమైన అంతర్నిర్మిత పద్ధతులను కలిగి ఉంటుంది మరియు ఒకదానితో ఒకటి అనుబంధించడంలో సహాయపడుతుంది.

కొన్ని ముఖ్యమైన పద్ధతులు క్రింది విధంగా ఉన్నాయి:

పద్ధతులువివరణ

socket.socket ()

సాకెట్లను సృష్టించడానికి ఉపయోగిస్తారు (సాకెట్లను సృష్టించడానికి సర్వర్ మరియు క్లయింట్ చివరలలో రెండింటిలోనూ అవసరం)

socket.accept ()

కనెక్షన్‌ను అంగీకరించడానికి ఉపయోగిస్తారు. ఇది ఒక జత విలువలను (కనన్, చిరునామా) తిరిగి ఇస్తుంది, ఇక్కడ డేటాను పంపడం లేదా స్వీకరించడం కోసం కాన్ ఒక కొత్త సాకెట్ వస్తువు మరియు చిరునామా కనెక్షన్ యొక్క మరొక చివర ఉన్న సాకెట్ యొక్క చిరునామా

socket.bind ()

పరామితిగా పేర్కొన్న చిరునామాకు బంధించడానికి ఉపయోగిస్తారు

socket.close ()

సాకెట్ మూసివేయబడినట్లు గుర్తించడానికి ఉపయోగిస్తారు

socket.connect ()

పరామితిగా పేర్కొన్న రిమోట్ చిరునామాకు కనెక్ట్ చేయడానికి ఉపయోగిస్తారు

socket.listen ()

కనెక్షన్‌లను అంగీకరించడానికి సర్వర్‌ను అనుమతిస్తుంది

ఇప్పుడు మీరు సాకెట్ మాడ్యూల్ యొక్క ప్రాముఖ్యతను అర్థం చేసుకున్నారు, సాకెట్ ప్రోగ్రామింగ్ కోసం సర్వర్‌లు మరియు క్లయింట్‌లను సృష్టించడానికి ఇది ఎలా ఉపయోగపడుతుందో చూద్దాం. .

సర్వర్ అంటే ఏమిటి?

సర్వర్ అనేది ప్రోగ్రామ్, కంప్యూటర్ లేదా నెట్‌వర్క్ వనరుల నిర్వహణకు అంకితమైన పరికరం. సర్వర్‌లు ఒకే పరికరం లేదా కంప్యూటర్‌లో ఉండవచ్చు లేదా స్థానికంగా ఇతర పరికరాలు మరియు కంప్యూటర్‌లకు కనెక్ట్ కావచ్చు లేదా రిమోట్ కూడా కావచ్చు. డేటాబేస్ సర్వర్లు, నెట్‌వర్క్ సర్వర్లు, ప్రింట్ సర్వర్‌లు వంటి వివిధ రకాల సర్వర్‌లు ఉన్నాయి.

సర్వర్లు సాధారణంగా కనెక్షన్‌ను స్థాపించడానికి మరియు ఖాతాదారులకు కట్టుబడి ఉండటానికి సాకెట్.సాకెట్ (), సాకెట్.బిండ్ (), సాకెట్.లిస్టెన్ () మొదలైన పద్ధతులను ఉపయోగిస్తాయి. ఇప్పుడు సర్వర్‌ను సృష్టించడానికి ప్రోగ్రామ్‌ను వ్రాద్దాం. కింది ఉదాహరణను పరిశీలించండి:

ఉదాహరణ:

దిగుమతి సాకెట్ s = socket.socket (socket.AF_INET, socket.SOCK_STREAM) s.bind ((socket.gethostname (), 1234%)) #port సంఖ్య 0-65535 మధ్య ఏదైనా కావచ్చు (మేము సాధారణంగా ప్రాబల్యం లేని పోర్టులను పేర్కొంటాము > 1023) s.listen (5) అయితే ట్రూ: clt, adr = s.accept () ప్రింట్ ({adr} స్థాపించబడింది 'కు కనెక్షన్) #f స్ట్రింగ్ అనేది f తో ముందే అక్షర స్ట్రింగ్, ఇది # కలుపులలో పైథాన్ వ్యక్తీకరణలను కలిగి ఉంటుంది .సెండ్ (బైట్లు ('పైథాన్‌లో సాకెట్ ప్రోగ్రామింగ్', 'utf-8')) # క్లయింట్‌సాకెట్‌కు సమాచారాన్ని పంపడానికి

మీరు గమనిస్తే, సాకెట్ సృష్టించడానికి మొదటి అవసరం సాకెట్ మాడ్యూల్‌ను దిగుమతి చేసుకోవడం. ఆ తరువాత సర్వర్ వైపు సాకెట్ సృష్టించడానికి సాకెట్.సాకెట్ () పద్ధతి ఉపయోగించబడుతుంది.

గమనిక:

AF_INET ఇంటర్నెట్ నుండి చిరునామాను సూచిస్తుంది మరియు దీనికి ఒక జత (హోస్ట్, పోర్ట్) అవసరం, ఇక్కడ హోస్ట్ కొన్ని నిర్దిష్ట వెబ్‌సైట్ లేదా దాని చిరునామా యొక్క URL కావచ్చు మరియు పోర్ట్ సంఖ్య పూర్ణాంకం. TCP ప్రోటోకాల్‌లను సృష్టించడానికి SOCK_STREAM ఉపయోగించబడుతుంది.

బైండ్ () పద్ధతి రెండు పారామితులను టుపుల్ (హోస్ట్, పోర్ట్) గా అంగీకరిస్తుంది. అయినప్పటికీ, దిగువ సంఖ్యలు సాధారణంగా ఆక్రమించబడినందున 4-అంకెల పోర్ట్ సంఖ్యలను ఉపయోగించడం మంచిది. వినండి () పద్ధతి సర్వర్ కనెక్షన్‌లను అంగీకరించడానికి అనుమతిస్తుంది. ఇక్కడ, 5 అనేది ఒకేసారి వచ్చే బహుళ కనెక్షన్ల క్యూ. ఇక్కడ పేర్కొనగల కనీస విలువ 0 (మీరు తక్కువ విలువను ఇస్తే, అది 0 గా మార్చబడుతుంది). ఒకవేళ పరామితి పేర్కొనబడకపోతే, ఇది డిఫాల్ట్ తగినదాన్ని తీసుకుంటుంది.

ది కనెక్షన్‌లను ఎప్పటికీ అంగీకరించడానికి అనుమతిస్తుంది. ‘Clt’ మరియు ‘adr’ క్లయింట్ వస్తువు మరియు చిరునామా. ప్రింట్ స్టేట్మెంట్ క్లయింట్ సాకెట్ యొక్క చిరునామా మరియు పోర్ట్ సంఖ్యను ప్రింట్ చేస్తుంది. చివరగా, డేటాను బైట్లలో పంపడానికి clt.send ఉపయోగించబడుతుంది.

ఇప్పుడు మా సర్వర్ అన్నీ సెట్ అయ్యాయి, క్లయింట్ వైపు వెళ్దాం.

క్లయింట్ అంటే ఏమిటి?

క్లయింట్ సర్వర్ నుండి సమాచారం లేదా సేవలను స్వీకరించే కంప్యూటర్ లేదా సాఫ్ట్‌వేర్. క్లయింట్-సర్వర్ మాడ్యూల్‌లో, క్లయింట్లు సర్వర్‌ల నుండి సేవలను అభ్యర్థిస్తాయి. గూగుల్ క్రోమ్, ఫైర్‌ఫాక్స్ వంటి వెబ్ బ్రౌజర్ దీనికి మంచి ఉదాహరణ. ఈ వెబ్ బ్రౌజర్‌లు యూజర్ నిర్దేశించిన విధంగా అవసరమైన వెబ్ పేజీలు మరియు సేవల కోసం వెబ్ సర్వర్‌లను అభ్యర్థిస్తాయి. ఇతర ఉదాహరణలు ఆన్‌లైన్ ఆటలు, ఆన్‌లైన్ చాట్‌లు మొదలైనవి.

ఇప్పుడు క్లయింట్-సైడ్ ప్రోగ్రామ్‌ను ఎలా కోడ్ చేయాలో చూద్దాం :

ఉదాహరణ:

దిగుమతి సాకెట్ s = socket.socket (socket.AF_INET, socket.SOCK_STREAM) s.connect ((socket.gethostname (), 2346%) msg ​​= s.recv (1024) print (msg.decode ('utf-8') )

మొదటి దశ సాకెట్ మాడ్యూల్‌ను దిగుమతి చేసి, ఆపై సర్వర్‌ను సృష్టించేటప్పుడు మీరు చేసిన విధంగానే సాకెట్‌ను సృష్టించండి. అప్పుడు, క్లయింట్-సర్వర్ మధ్య కనెక్షన్‌ని సృష్టించడానికి మీరు (హోస్ట్, పోర్ట్) పేర్కొనడం ద్వారా కనెక్ట్ () పద్ధతిని ఉపయోగించాల్సి ఉంటుంది.


గమనిక: క్లయింట్ మరియు సర్వర్ ఒకే కంప్యూటర్‌లో ఉన్నప్పుడు gethostname ఉపయోగించబడుతుంది. (LAN - localip / WAN - publicip)

ఇక్కడ, క్లయింట్ సర్వర్ నుండి కొంత సమాచారాన్ని పొందాలనుకుంటుంది మరియు దీని కోసం, మీరు recv () పద్ధతిని ఉపయోగించాలి మరియు సమాచారం మరొక వేరియబుల్ msg లో నిల్వ చేయబడుతుంది. పంపిన సమాచారం బైట్లలో ఉంటుందని మరియు పై ప్రోగ్రామ్‌లోని క్లయింట్‌లో ఒకే బదిలీలో 1024 బైట్లు (బఫర్ సైజు) వరకు పొందవచ్చని గుర్తుంచుకోండి. బదిలీ చేయబడిన సమాచారం మొత్తాన్ని బట్టి ఇది ఏదైనా మొత్తానికి పేర్కొనవచ్చు.

చివరగా, బదిలీ చేయబడిన సందేశాన్ని డీకోడ్ చేసి ముద్రించాలి.

క్లయింట్-సర్వర్ ప్రోగ్రామ్‌లను ఎలా సృష్టించాలో మీకు ఇప్పుడు తెలుసు, అవి ఎలా అమలు కావాలో చూద్దాం.

ఎకో క్లయింట్-సర్వర్:

ఈ ప్రోగ్రామ్‌లను అమలు చేయడానికి, మీ కమాండ్ ప్రాంప్ట్‌ను తెరిచి, మీరు మీ క్లయింట్ మరియు సర్వర్ ప్రోగ్రామ్‌ను సృష్టించిన ఫోల్డర్‌లోకి ప్రవేశించి, ఆపై టైప్ చేయండి:

py server.py (ఇక్కడ, server.py అనేది సర్వర్ యొక్క ఫైల్ పేరు, మీరు పై -3.7 server.py ని కూడా ఉపయోగించవచ్చు)

ఇది పూర్తయిన తర్వాత, సర్వర్ పనిచేయడం ప్రారంభిస్తుంది. క్లయింట్‌ను అమలు చేయడానికి, మరొక cmd విండోను తెరిచి, టైప్ చేయండి:

py client.py (ఇక్కడ, client.py అనేది క్లయింట్ యొక్క ఫైల్ పేరు)

జావాలో క్లాస్ vs ఇంటర్ఫేస్

అవుట్పుట్ (సర్వర్):

(క్లయింట్)

బఫర్ పరిమాణాన్ని 7 కి తగ్గించడం ద్వారా అదే ప్రోగ్రామ్‌ను ప్రయత్నిద్దాం మరియు మనకు ఏ అవుట్పుట్ వస్తుందో చూద్దాం:

అవుట్పుట్:

తరగతి జావా యొక్క ఉదాహరణ

మీరు గమనిస్తే, 7 బైట్‌లను బదిలీ చేసిన తర్వాత కనెక్షన్ ఆగిపోతుంది. కానీ ఇది ఒక సమస్య ఎందుకంటే మీకు పూర్తి సమాచారం రాలేదు మరియు కనెక్షన్ మూసివేయబడింది. ఈ సమస్యను పరిష్కరించడానికి వెళ్దాం.

బహుళ కమ్యూనికేషన్లు:

క్లయింట్ పూర్తి సమాచారాన్ని స్వీకరించే వరకు కనెక్షన్ కొనసాగడానికి, మీరు లూప్‌ను ఉపయోగించుకోవచ్చు:

ఉదాహరణ:

దిగుమతి సాకెట్ s = socket.socket (socket.AF_INET, socket.SOCK_STREAM) s.connect ((socket.gethostname (), 2346%) అయితే నిజం: msg = s.recv (7) ముద్రణ (msg.decode ('utf- 8 ')))

మీరు దీన్ని చేసిన తర్వాత, బదిలీకి 7 బైట్లలో పూర్తి సందేశం అందుతుంది.

ఈ సమయంలో, మీరు చూడగలిగినట్లుగా, కనెక్షన్ ఆగిపోదు మరియు అది ఎప్పుడు జరుగుతుందో మీకు తెలియదు. దీనికి జోడించడానికి, క్లయింట్ సర్వర్ నుండి స్వీకరించే సందేశం లేదా సమాచారం ఎంత పెద్దదో మీకు తెలియకపోతే. ఇటువంటి సందర్భాల్లో, మీరు క్లయింట్ వైపు ఈ క్రింది బిట్ కోడ్‌ను ఉపయోగించవచ్చు:

ఉదాహరణ:

కంప్లీట్_ఇన్ఫో = '' అయితే ట్రూ: msg = s.recv (7) ఉంటే లెన్ (msg)<=0: break complete_info += msg.decode('utf-8') print(complete_info) 

సర్వర్ వైపు ఈ క్రింది విధంగా క్లోజ్ () పద్ధతిని ఉపయోగించండి:

clt.close ()

దీని యొక్క అవుట్పుట్ క్రింది చిత్రంలో చూపిన విధంగా ఉంటుంది:

అవుట్పుట్:



పై కోడ్ యొక్క అన్ని బ్లాక్ ఏమిటంటే, సమాచారం యొక్క పరిమాణాన్ని తనిఖీ చేసి, ఒకేసారి రెండు బైట్ల బఫర్‌లో ముద్రించడం మరియు కనెక్షన్ పూర్తయిన తర్వాత దాన్ని మూసివేయడం.

పైథాన్ వస్తువులను బదిలీ చేయడం:

ఇక్కడ వరకు మీరు తీగలను బదిలీ చేసే నైపుణ్యం పొందారు. కానీ, సాకెట్ ప్రోగ్రామింగ్ పైథాన్ పైథాన్ వస్తువులను కూడా బదిలీ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఈ వస్తువులు సెట్లు, టుపుల్స్, డిక్షనరీలు వంటివి కావచ్చు. దీన్ని సాధించడానికి, మీరు పైథాన్ యొక్క pick రగాయ మాడ్యూల్‌ను దిగుమతి చేసుకోవాలి.

పైథాన్ pick రగాయ మాడ్యూల్:

పైథాన్‌లోని వస్తువులను మీరు నిజంగా సీరియలైజ్ చేస్తున్నప్పుడు లేదా డి-సీరియలైజ్ చేస్తున్నప్పుడు పైథాన్ pick రగాయ మాడ్యూల్ చిత్రంలోకి వస్తుంది. ఒక చిన్న ఉదాహరణ చూద్దాం,

ఉదాహరణ:

దిగుమతి pick రగాయ mylist = [1,2, 'abc'] mymsg = pickle.dumps (mylist) print (mymsg)

అవుట్పుట్: b’x80x03] qx00 (Kx01Kx02Xx03x00x00x00abcqx01e. ’

మీరు చూడగలిగినట్లుగా, పై ప్రోగ్రామ్‌లో, pick రగాయ మాడ్యూల్ యొక్క డంప్స్ () ఫంక్షన్‌ను ఉపయోగించి ‘మైలిస్ట్’ సీరియలైజ్ చేయబడింది. అవుట్పుట్ ‘బి’ తో మొదలవుతుందని గమనించండి, అంటే ఇది బైట్‌లుగా మార్చబడుతుంది. సాకెట్ ప్రోగ్రామింగ్‌లో, బదిలీ చేయడానికి మీరు ఈ మాడ్యూల్‌ను అమలు చేయవచ్చు పైథాన్ వస్తువులు క్లయింట్లు మరియు సర్వర్‌ల మధ్య.

పైథాన్ ఆబ్జెక్ట్ నిర్మాణాలను బదిలీ చేయడానికి pick రగాయ మాడ్యూల్‌ను ఎలా ఉపయోగించాలి?

మీరు సాకెట్లతో పాటు le రగాయను ఉపయోగించినప్పుడు, మీరు ఖచ్చితంగా నెట్‌వర్క్ ద్వారా ఏదైనా బదిలీ చేయవచ్చు. సర్వర్ నుండి క్లయింట్‌కు జాబితాను బదిలీ చేయడానికి సర్వర్-సైడ్ మరియు క్లయింట్-సైడ్ ప్రత్యర్ధులను వ్రాద్దాం:

సర్వర్ వైపు:

దిగుమతి సాకెట్ దిగుమతి pick రగాయ a = 10 s = socket.socket (socket.AF_INET, socket.SOCK_STREAM) s.bind ((socket.gethostname (), 2133%)) # బైండింగ్ టుపుల్ s.listen (5) అయితే నిజం: clt, adr = s.accept () ముద్రణ ({adr} స్థాపించబడిన 'కనెక్షన్) m = {1:' క్లయింట్ ', 2:' సర్వర్ '} mymsg = pickle.dumps (m) # మేము తరువాత మైమ్స్‌ను ముద్రించాలనుకుంటున్నాము = {లెన్ (mymsg): {a} ut 'utf-8') + mymsg clt.send (mymsg)

ఇక్కడ, m అనేది ఒక నిఘంటువు, ఇది ప్రాథమికంగా a అది సర్వర్ నుండి క్లయింట్‌కు పంపాల్సిన అవసరం ఉంది. మొదట వస్తువును డంప్స్ () ఉపయోగించి సీరియలైజ్ చేసి, ఆపై బైట్‌లుగా మార్చడం ద్వారా ఇది జరుగుతుంది.
ఇప్పుడు క్లయింట్ వైపు ప్రతిరూపాన్ని వ్రాద్దాం:

క్లయింట్-సైడ్:

దిగుమతి సాకెట్ దిగుమతి pick రగాయ a = 10 s = socket.socket (socket.AF_INET, socket.SOCK_STREAM) s.connect ((socket.gethostname (), 2133%)) అయితే నిజం: complete_info = b '' rec_msg = నిజం అయితే నిజం: mymsg = s.recv (10) rec_msg ఉంటే: ముద్రణ (సందేశము f'The పొడవు = {mymsg [: ఒక]} ') x = పూర్ణాంకానికి (mymsg [: ఒక]) rec_msg = ఫాల్స్ complete_info + = లెన్ ఉంటే mymsg (complete_info) . )

మొదటి సమయంలో లూప్ పూర్తి సందేశాన్ని (కంప్లీట్_ఇన్ఫో) అలాగే బఫర్ ఉపయోగించి అందుకుంటున్న సందేశాన్ని (rec_msg) ట్రాక్ చేయడంలో మాకు సహాయపడుతుంది. rec_ ను సెట్ చేయడం ద్వారా సందేశం
అప్పుడు, సందేశం అందుతున్నప్పుడు, నేను చేస్తున్నది దానిలోని ప్రతి బిట్‌ను ముద్రించడం, పరిమాణం 10 యొక్క బఫర్‌లో స్వీకరించడం. ఈ పరిమాణం మీ వ్యక్తిగత ఎంపికను బట్టి ఏదైనా కావచ్చు.

అప్పుడు, అందుకున్న సందేశం పూర్తి సందేశానికి సమానం అయితే, నేను సందేశాన్ని అందుకున్న పూర్తి సమాచారం వలె ప్రింట్ చేస్తున్నాను, ఆ తరువాత నేను లోడ్లు () ఉపయోగించి సందేశాన్ని డీ-సీరియలైజ్ చేసాను.

పై ప్రోగ్రామ్ యొక్క అవుట్పుట్ క్రింది విధంగా ఉంది:

పైథాన్‌లోని సాకెట్ ప్రోగ్రామింగ్‌పై ఈ వ్యాసం చివరకి ఇది మనలను తీసుకువస్తుంది. మీరు అన్ని భావనలను స్పష్టంగా అర్థం చేసుకున్నారని నేను ఆశిస్తున్నాను.

మీరు వీలైనంత వరకు ప్రాక్టీస్ చేశారని నిర్ధారించుకోండి మరియు మీ అనుభవాన్ని తిరిగి పొందండి.

మాకు ప్రశ్న ఉందా? దయచేసి ఈ “పైథాన్‌లో సాకెట్ ప్రోగ్రామింగ్” బ్లాగులోని వ్యాఖ్యల విభాగంలో పేర్కొనండి మరియు మేము వీలైనంత త్వరగా మిమ్మల్ని సంప్రదిస్తాము.

పైథాన్‌తో పాటు దాని వివిధ అనువర్తనాలతో లోతైన జ్ఞానం పొందడానికి, మీరు ప్రత్యక్ష ప్రసారం కోసం నమోదు చేసుకోవచ్చు 24/7 మద్దతు మరియు జీవితకాల ప్రాప్యతతో.