Movatterモバイル変換


[0]ホーム

URL:


Siirry sisältöön
Wikipedia
Haku

Berkeley sockets

Wikipediasta

Berkeley sockets (BSD sockets) onBerkeley Software Distributionissa (BSD) esiteltyohjelmointirajapinta (API)prosessien väliseen kommunikointiin niin sanotuillapistokkeilla.[1][2] BSD rajapinnasta on tullutde facto standardi lähes sellaisenaan, jota kutsutaan myösPOSIX-standardissa nimelläPOSIX sockets.[3][4][5]

Rajapinta julkaistiin ensimmäisenä4.2BSD:ssä.[6]

Microsoft Windows -käyttöjärjestelmänWindows Sockets -rajapinta on toinen vastaavankaltainen.[7][8] Winsock-rajapinnassa on POSIX-määrittelyn mukaiset toiminnot.[9]Macintosh-alustalla rajapinnanfunktioiden nimeäminen on poikennut yleisesti käytetystä.[10]iOS-alustalla rajapinta on merkittävästi erilainen.[11] Muita erilaisia rajapintoja onX/Open Transport Interface (XTI).[12]

Useimmat alustat nykyisin toteuttavat POSIX-määrittelyn mukaisen version verkko-ohjelmointiin.

Toiminnot

[muokkaa |muokkaa wikitekstiä]

Pistoke (engl.socket) on rajapinnassa käytettävä tiedostokahva (engl.handle), jonka kautta tietoa vastaanotetaan ja lähetetään.[3]

Rajapintaa voidaan käyttää useidenprotokollien kanssa kuten:[3]

Rajapintaa voidaan käyttää useiden tyyppien (kommunikointityylien) kanssa, joista tavallisimmat ovat SOCK_STREAM ja SOCK_DGRAM.[3][1] Muita ovat SOCK_RAW, SOCK_RDM ja SOCK_SEQPACKET.[2] Rajapintaa voidaan käyttää sekä yhteydellisille että yhteydettömille tavoille.[13]

Keskeisetjärjestelmäkutsut rajapinnassa ovat:[5]

  • socket
  • close
  • connect
  • bind
  • listen
  • accept

Tiedonsiirto toimii kuten tiedostojen kanssa: rajapinnan avulla luetaan ja kirjoitetaan tietoa käyttäen järjestelmäkutsupareja:[2]

  • read, write
  • recv, send
  • recvfrom, sendto
  • recvmsg, sendmsg
  • readv, writev

Rajapinta antaa onnistumisen merkin kun tieto on hyväksytty siirrettäväksi.[2] Rajapinnan toiminta voidaan asettaa ei-pysäyttäväksi (engl.non-blocking), jolloin funktiokutsut eivät jää odottamaan.[3]

Rajapinnan ja kommunikoinnin toimintaa voidaan muuttaa muun muassagetsockopt jasetsockopt järjestelmäkutsujen avulla.[14][15]

Lähteet

[muokkaa |muokkaa wikitekstiä]
  1. abJim Frost: BSD Sockets: A Quick And Dirty Primer cis.temple.edu. Viitattu 29.3.2018.
  2. abcdLawrence Besaw: Berkeley UNIX System Calls and Interprocess Communication (PS) gaia.cs.umass.edu. tammikuu 1987. Viitattu 29.3.2018.
  3. abcdeSOCKET(2) man7.org. Viitattu 29.3.2018.
  4. socket The Open Group. Viitattu 29.3.2018.
  5. abGiovanni Agosta: The POSIX Socket API (PDF) home.deib.polimi.it. Viitattu 29.3.2018.
  6. James Pelkey: TCP/IP and XNS 1981 – 1983 historyofcomputercommunications.info. Arkistoitu 17.6.2018. Viitattu 6.6.2018. (englanniksi)
  7. Warren Young: Winsock Programmer’s FAQ Articles: BSD Sockets Compatibility tangentsoft.net. Viitattu 29.3.2018.
  8. Porting Socket Applications to Winsock Microsoft. Viitattu 29.3.2018.
  9. Windows Sockets sockets.com. 20.1.1993. Viitattu 29.3.2018.
  10. Macintosh Development web.mit.edu. Viitattu 29.3.2018.
  11. Using Sockets and Socket Streams Apple. Viitattu 29.3.2018.
  12. Understanding the X/Open Transport Interface (XTI) IBM. Viitattu 29.3.2018.
  13. socket freebsd.org. Viitattu 30.3.2018.
  14. GETSOCKOPT(2) man7.org. Viitattu 30.3.2018.
  15. GETSOCKOPT(2) freebsd.org. Viitattu 30.3.2018.

Kirjallisuutta

[muokkaa |muokkaa wikitekstiä]

Aiheesta muualla

[muokkaa |muokkaa wikitekstiä]
Noudettu kohteesta ”https://fi.wikipedia.org/w/index.php?title=Berkeley_sockets&oldid=23524712
Luokka:

[8]ページ先頭

©2009-2026 Movatter.jp