Computer ကိုကွန်ယက်အဖွဲ့များအတွက် Socket Programming ခြုံငုံသုံးသပ်ချက်

တစ်ဦးက socket ကွန်ပျူတာကွန်ယက်ကိုပရိုဂရမ်များ၏အခြေခံအကျဆုံးနည်းပညာတစ်ခုဖြစ်ပါသည်။ ခြေစွပ်ကွန်ယက်ကိုဆော့ဖျဝဲ application များကွန်ရက်က Hardware နဲ့ operating system မြားသို့တညျဆောကျစံယန္တရားများ အသုံးပြု. ဆက်သွယ်ပြောဆိုရန်ခွင့်ပြုသည်။

ဒါကြောင့်အင်တာနက်ကို software ကိုဖွံ့ဖြိုးတိုးတက်မှု၏ဖွင့်အခြားအင်္ဂါရပ်ကဲ့သို့မြည်ပေမဲ့, socket နည်းပညာက်ဘ်ရှေ့တော်၌ကြာမြင့်စွာတည်ရှိ။ နှင့်အညီ, ဒီနေ့အကျော်ကြားဆုံးကွန်ယက်ကိုဆော့ဖျဝဲ application များအများအပြားခြေစွပ်အပေါ်အားကိုး။

သင့်ကန်ြယက်သည်အဘယ်အရာကို Sockets သလားနိုင်သလား

တစ်ဦးက socket ဆော့ဖ်ဝဲအတိအကျနှစ်ခုအပိုငျးပိုငျး (ကဒါခေါ် Point-to-point connection ကို) အကြားတစ်ခုတည်းသောဆက်သွယ်မှုကိုကိုယ်စားပြုတယ်။ ဆော့ဖ်ဝဲနှစ်ယောက်ထက်ပိုအပိုင်းပိုင်းတွေနဲ့ဆက်သွယ်နိုင်သည် ကို client / server ကို မျိုးစုံခြေစွပ်ကို အသုံးပြု. သို့မဟုတ်ဖြန့်ဝေစနစ်များကို။ ဥပမာအားဖြင့်များစွာသောက်ဘ်ဘရောက်ဇာကိုတစ်ပြိုင်နက်ဆာဗာအပေါ်ကိုဖန်ဆင်းခြေစွပ်၏အုပ်စုတစုကနေတဆင့်တစ်ခုတည်းက Web Server နဲ့ဆက်သွယ်ပြောဆိုနိုင်ပါတယ်။

socket-based software ကိုပုံမှန်အားဖြင့် network ပေါ်မှာနှစ်ခုသီးခြားကွန်ပျူတာများပေါ်တွင်အလုပ်လုပ်ပေမယ့်ခြေစွပ်တစ်ခုတည်းကွန်ပျူတာပေါ်တွင်ဒေသအလိုက် (interprocess) ဆက်သွယ်ဖို့လည်းသုံးနိုင်တယ်။ ခြေစွပ်ဆက်သွယ်မှု၏တစ်ဖက်နှစ်ဦးစလုံးဒေတာပေးပို့ခြင်းနှင့်လက်ခံခြင်းနိုင်စွမ်းကြောင်းဆိုလိုတာက bidirectional ဖြစ်ကြသည်။ တခါတရံဆက်သွယ်ရေးစတင်ကြောင်းတလျှောက်လွှာ "server" လို့ကို "client ကို" နှင့်အခြားပလီကေးရှင်းချေါသို့သော်ဤဝေါဟာရများအတွက်ရှုပ်ထွေးမှုများမှဦးဆောင်နေသည် စေ့စေ့ကြည့်ရှုရန်ရွယ်တူ networking နှင့်ယေဘုယျအားဖြင့်ရှောင်ကြဉ်ရပါမည်။

socket API များနှင့်စာကြည့်တိုက်

စံအကောင်အထည်ဖော်ရန်အများအပြားစာကြည့်တိုက်များ က application programming interfaces (API) အင်တာနက်ပေါ်ရှိတည်ရှိ။ ပထမဦးဆုံးပင်မအထုပ် - ထို Berkeley Socket စာကြည့်တိုက် UNIX စနစ်များအပေါ်အသုံးပြုမှုအတွက်ကျယ်ပြန့်နေဆဲဖြစ်ပါတယ်။ နောက်ထပ်အလွန်ဘုံကို API ကို Microsoft Operating System ကိုများအတွက် Windows ကို Sockets (WinSock) စာကြည့်တိုက်ဖြစ်ပါတယ်။ အခြားကွန်ပျူတာနည်းပညာများမှဆွေမျိုး, socket APIs များကိုအတော်လေးရင့်ကျက်နေသောခေါင်းစဉ်: WinSock 1982 ကတည်းက 1993 နှင့် Berkeley ခြေစွပ်ကတည်းကအသုံးပြုခဲ့တာဖြစ်ပါတယ်။

အဆိုပါ socket APIs များကိုအတော်လေးအသေးစားနှင့်ရိုးရှင်းသောဖြစ်ကြသည်။ လုပ်ဆောင်မှု၏အတော်များများက ) ( ရေး, ) ထိုကဲ့သို့သော (ကိုဖတ်ပြီးအဖြစ်ဖိုင် input ကို / output ကိုလုပ်ရိုးလုပ်စဉ်များတွင်အသုံးပြုသူတို့အားဆင်တူဖြစ်ကြသည်ကို၎င်း, အနီးကပ် () ။ အမှန်တကယ် function ကိုရွေးချယ်ပရိုဂရမ်းမင်းဘာသာစကားနှင့် socket စာကြည့်တိုက်အပေါ်မူတည်သုံးစွဲဖို့ရန်တောင်းဆိုလိုက်သည်။

socket Interface ကိုအမျိုးအစားများ

socket interfaces သုံးအမျိုးအစားသို့ခွဲခြားနိုင်ပါသည်:

  • stream ခြေစွပ်, အသုံးအများဆုံးအမျိုးအစား, ထို connection ကိုရှောက်သွားသဖြင့်မည်သည့်ဒေတာကြောင့်စေလွှတ်တော်မူခဲ့သည့်အတွက်တူညီနိုင်ရန်အတွက်ရောက်ရှိမည်အာမခံပါလိမ့်မည်သည့်ပြီးနောက်နှစ်ခုဆက်သွယ်ပါတီများကပထမဦးစွာ socket connection ကိုထူထောင်လိုအပ်သည် - ဒါခေါ်ကွန်နက်ရှင်-oriented programming မော်ဒယ်။
  • Datagram ခြေစွပ်ကမ်းလှမ်းမှုကို "ကွန်နက်ရှင်-လျော့နည်း" semantic ။ datagrams နှင့်အတူ, ဆက်သွယ်မှုစီးနှင့်ဝသကဲ့သို့သွယ်ဝိုက်ထက်ရှင်းလင်းပြတ်သားစွာဖြစ်ကြသည်။ လိုအပ်အဖြစ်ပါတီရိုးရှင်းစွာ datagrams ပို့ပေးနှင့်အခြားတုံ့ပြန်ရန်စောင့်များအတွက်ဖြစ်စေ, မက်ဆေ့ခ်ျများထုတ်လွှင့်အတွက်ပျောက်ဆုံးခြင်းသို့မဟုတ်အမိန့်များထဲကလက်ခံရရှိပေမယ့်ခြေစွပ်ဒီပြဿနာတွေကိုကိုင်တွယ်ဖြေရှင်းဖို့လျှောက်လွှာရဲ့တာဝန်ဖြစ်ပါတယ်မဟုတ်နိုင်ပါသည်။ datagram ခြေစွပ်အကောင်အထည်ဖော်အချို့သောအခြေအနေများတွင်မိမိတို့အအသုံးပြုမှုကိုဖြောင့်မတ်, စမ်းချောင်းခြေစွပ်ကိုအသုံးပြုပြီးနှိုင်းယှဉ်အချို့ applications များဟာစွမ်းဆောင်ရည်တိုးတက်မှုများနှင့်အပိုဆောင်းပြောင်းလွယ်ပြင်လွယ်ပေးနိုင်ပါသည်။
  • socket ၏တတိယအမျိုးအစား - စို socket - တူသောစံ protocols များများအတွက်စာကြည့်တိုက်ရဲ့ built-in support ကို bypass လုပ် ကို TCP နှင့် UDP ကို ။ ကုန်ကြမ်းခြေစွပ်ထုံးစံ low-level protocol ကိုဖွံ့ဖြိုးတိုးတက်မှုအတွက်အသုံးပြုကြသည်။

network protocol များတွင် socket ပံ့ပိုးမှု

ခေတ်သစ်ကွန်ယက်ကိုခြေစွပ်ပုံမှန်အားဖြင့်အင်တာနက်ကို protocols များနှင့် တွဲဖက်. အသုံးပြုကြသည် - IP ကို, ကို TCP နှင့် UDP ကို။ အင်တာနက်ပရိုတိုကောအဘို့အခြေစွပ်အကောင်အထည်ဖော် libraries ကုန်ကြမ်းခြေစွပ်များအတွက် datagrams အဘို့, စီးဘို့ UDP ကိုကို TCP ကိုသုံးပါနှင့် IP ကိုသူ့ဟာသူ။

အင်တာနက်ကိုကျော်ဆက်သွယ်ပြောဆိုရန်, IP ကို socket စာကြည့်တိုက်များအတွက်အသုံးပြုနိုင်သည် IP address ကို တိကျတဲ့ကွန်ပျူတာများကိုသိရှိနိုင်ဖို့။ အသုံးပြုသူများနှင့် socket ပရိုဂရမ်မာအမည်ဖြင့် (ဥပမာ, "thiscomputer.wireless.about.com") တို့ကအစားလိပ်စာ (ဥပမာ 208.185.127.40) ကကွန်ပျူတာများနှင့်အတူအလုပ်လုပ်ရန်နိုင်အောင်, ဝန်ဆောင်မှုများနာမည်နှင့်အတူအင်တာနက်ကိုအလုပ်အတော်များများအစိတ်အပိုင်းများ။ stream နှင့် datagram ခြေစွပ်ကိုလည်း IP ကိုအသုံးပြုနိုင်သည် port နံပါတ်များ တစ်ဦးချင်းစီကတခြားကနေအများအပြား applications များခွဲခြားရန်။ ဥပမာအားဖြင့်, အင်တာနက်ပေါ်ရှိ web browser များက်ဘ်ဆာဗာများနှင့်အတူ socket ဆက်သွယ်ရေးများအတွက် default အနေနဲ့အဖြစ် port ကို 80 သုံးစွဲဖို့ကိုငါသိ၏။