కంప్యూటర్ నెట్వర్క్ ప్రోగ్రామింగ్ యొక్క అత్యంత ప్రాథమిక సాంకేతికతలలో ఒక సాకెట్ ఒకటి. సాకెట్లను నెట్వర్క్ సాఫ్టువేరు అనువర్తనాలు నెట్వర్కు హార్డ్వేర్ మరియు నిర్వహణ వ్యవస్థల్లో నిర్మించిన ప్రామాణిక యాంత్రిక పద్ధతులను ఉపయోగించి కమ్యూనికేట్ చేయడానికి అనుమతిస్తాయి.
ఇది ఇంటర్నెట్ సాఫ్ట్వేర్ అభివృద్ధి యొక్క మరో లక్షణం వలె ధ్వనించినప్పటికీ, సాకెట్ టెక్నాలజీ వెబ్కు చాలా కాలం ముందు ఉనికిలో ఉంది. మరియు, నేటి అత్యంత ప్రజాదరణ పొందిన నెట్వర్క్ సాఫ్ట్వేర్ అప్లికేషన్లు సాకెట్లు ఆధారపడి.
మీ నెట్ వర్క్ కోసం సాకెట్లు ఏమి చేయగలవు
ఒక సాకెట్ ఖచ్చితంగా రెండు కంప్యుటర్ సాఫ్ట్ వేర్ల మధ్య ఒకే కనెక్షన్ను సూచిస్తుంది (పిలవబడుతుంది పాయింట్ టు పాయింట్ కనెక్షన్). బహుళ సాకెట్లు ఉపయోగించి రెండు కంటే ఎక్కువ సాఫ్ట్వేర్ సాఫ్ట్వేర్ క్లయింట్ / సర్వర్ లేదా పంపిణీ వ్యవస్థలతో కమ్యూనికేట్ చేయవచ్చు. ఉదాహరణకు, అనేక వెబ్ బ్రౌజర్లు ఒకేసారి వెబ్ సర్వర్తో సర్వర్లో తయారు చేయబడిన సాకెట్ల ద్వారా సంభాషించగలవు.
సాకెట్ ఆధారిత సాఫ్ట్వేర్ సాధారణంగా నెట్వర్క్లో రెండు వేర్వేరు కంప్యూటర్లలో నడుస్తుంది, అయితే స్థానికంగా కమ్యూనికేట్ చేయడానికి సాకెట్లు కూడా ఉపయోగించవచ్చు ( ఇంటర్ప్రాసెస్ ) ఒకే కంప్యూటర్లో. సాకెట్లు ద్వైయాంశిక , అనగా కనెక్షన్ యొక్క రెండు వైపులా డేటాను పంపడం మరియు స్వీకరించడం రెండింటి సామర్థ్యం కలిగి ఉంటుంది. కొన్నిసార్లు సంభాషణను ప్రారంభించే ఒక అనువర్తనం "క్లయింట్" మరియు "సర్వర్" అనే ఇతర అప్లికేషన్ అని పిలుస్తారు, కానీ ఈ పదజాలాన్ని పీర్ చేయడంలో పీర్లో గందరగోళానికి దారితీస్తుంది మరియు సాధారణంగా వాడకూడదు.
సాకెట్ API లు మరియు గ్రంధాలయాలు
ప్రామాణిక అప్లికేషన్ ప్రోగ్రామింగ్ ఇంటర్ఫేస్లు (API లు) అమలు చేసే అనేక గ్రంధాలయాలు ఇంటర్నెట్లో ఉన్నాయి. మొట్టమొదటి ప్రధాన ప్యాకేజీ - బర్కిలీ సాకెట్ లైబ్రరీ ఇప్పటికీ UNIX వ్యవస్థలపై ఉపయోగంలో విస్తృతంగా ఉంది. మరొక సాధారణ API అనేది మైక్రోసాఫ్ట్ ఆపరేటింగ్ సిస్టమ్స్ కోసం Windows సాకెట్స్ (విన్సాక్) లైబ్రరీ. ఇతర కంప్యూటర్ టెక్నాలజీల సాపేక్షత, సాకెట్ API లు చాలా పరిణతి చెందినవి: 1982 తరువాత 1993 నుండి విస్సాక్ ఉపయోగంలో ఉంది మరియు బర్కిలీ సాకెట్లు.
సాకెట్ API లు సాపేక్షంగా చిన్నవి మరియు సరళమైనవి. అనేక విధులు ఫైలు ఇన్పుట్ / అవుట్పుట్ నిత్యకృత్యాలను ఉపయోగించే వాటికి సమానంగా ఉంటాయి చదవండి(), వ్రాయడానికి(), మరియు దగ్గరగా (). వాస్తవిక ఫంక్షన్ ప్రోగ్రామింగ్ లాంగ్వేజ్ మరియు సాకెట్ లైబ్రరీపై ఆధారపడి ఉంటుంది.
సాకెట్ ఇంటర్ఫేస్ రకాలు
సాకెట్ ఇంటర్ఫేస్లను మూడు విభాగాలుగా విభజించవచ్చు:
- స్ట్రీమ్ సాకెట్లు, అత్యంత సాధారణ రకాన్ని రెండు కమ్యూనికేట్ పార్టీలు ముందుగా ఒక సాకెట్ కనెక్షన్ను ఏర్పాటు చేయాల్సిన అవసరం ఏర్పడుతుంది, ఆ తర్వాత ఆ కనెక్షన్ ద్వారా ఏ డేటాను పంపించాలో అది పంపిన క్రమంలో అదే కిందికి రావడానికి హామీ ఇవ్వబడుతుంది - కనెక్షన్-ఆధారిత ప్రోగ్రామింగ్ మోడల్ అని పిలవబడుతుంది .
- డేటాగ్రామ్ సాకెట్స్ "కనెక్షన్-తక్కువ" సెమాంటిక్స్ను అందిస్తాయి. Datagrams తో, కనెక్షన్లు ప్రవాహాలు వలె స్పష్టమైన కాకుండా స్పష్టమైనవి. అవసరమైతే గాని పార్టీ కేవలం datagrams పంపుతుంది మరియు ప్రతిస్పందన కోసం వేచి ఉంటుంది; సందేశాలను బదిలీ చేయడంలో లేదా ఆర్డర్ నుండి పొందవచ్చు, కానీ ఇది అప్లికేషన్ యొక్క బాధ్యత మరియు ఈ సమస్యలను పరిష్కరించడానికి సాకెట్లు కాదు. డేటాగ్రామ్ సాకెట్లు అమలు చేయడం కొన్ని అనువర్తనాల్లో కొన్ని సందర్భాల్లో వాటి వినియోగాన్ని సమర్థిస్తూ, స్ట్రీమ్ సాకెట్స్తో పోలిస్తే కొన్ని అనువర్తనాలు పనితీరు బూస్ట్ మరియు అదనపు సౌలభ్యాన్ని అందిస్తుంది.
- మూడవ రకం సాకెట్ - ది ముడి సాకెట్ - TCP మరియు UDP వంటి ప్రామాణిక ప్రోటోకాల్స్ కోసం లైబ్రరీ అంతర్నిర్మిత మద్దతును అధిగమించింది. అనుకూలత తక్కువ స్థాయి ప్రోటోకాల్ అభివృద్ధికి రా సాకెట్లు ఉపయోగిస్తారు.
నెట్వర్క్ ప్రొటోకాల్స్ లో సాకెట్ మద్దతు
ఆధునిక నెట్వర్క్ సాకెట్లు సాధారణంగా ఇంటర్నెట్ ప్రొటోకాల్స్ - ఐపి, TCP మరియు UDP లతో కలసి ఉపయోగించబడతాయి. ఇంటర్నెట్ ప్రోటోకాల్ కోసం సాకెట్స్ను అమలు చేసే లైబ్రరీలు స్ట్రీమ్స్ కోసం TCP, డేటాగ్రామ్ల కోసం UDP మరియు ముడి సాకెట్లు కోసం IP కూడా ఉపయోగిస్తాయి.
ఇంటర్నెట్లో కమ్యూనికేట్ చేయడానికి, IP సాకెట్ లైబ్రరీలు నిర్దిష్ట కంప్యూటర్లను గుర్తించడానికి IP చిరునామాను ఉపయోగిస్తాయి. పేరు పెట్టే సేవలతో ఇంటర్నెట్ పనిలో అనేక భాగాలు, వినియోగదారులు మరియు సాకెట్ ప్రోగ్రామర్లు కంప్యూటర్ల ద్వారా పేరుతో పని చేయవచ్చు ( ఉదా: , "thiscomputer.wireless.about.com") బదులుగా చిరునామా ద్వారా ( ఉదా: , 208.185.127.40). స్ట్రీమ్ మరియు డాటాగ్రాం సాకెట్లు ఐ పి పోర్ట్ సంఖ్యలను ప్రతి ఇతర నుండి బహుళ అనువర్తనాలను గుర్తించడానికి కూడా ఉపయోగిస్తాయి. ఉదాహరణకు, ఇంటర్నెట్లో వెబ్ బ్రౌజర్లు వెబ్ సర్వర్లతో సాకెట్ సమాచారాలకు డిఫాల్ట్గా పోర్ట్ 80 ను ఉపయోగించాలని తెలుసు.












