Atslēgas
- Pamatmērķis: Java tīklā tīkla komunikācijā tiek izmantotas gan Socket, gan ServerSocket klases. Tomēr Socket klase tiek izmantota savienojuma izveidei ar serveri no klienta sistēmas, savukārt ServerSocket klase tiek izmantota servera pusē, lai gaidītu pieprasījumus no klientiem un izveidotu savienojumus.
- Metodes un lietošana: Socket klases metodes tiek izmantotas, lai nosūtītu un saņemtu datus, kad ir izveidots savienojums ar serveri. Turpretim ServerSocket klase galvenokārt izmanto tādas metodes kā
accept()
klausīties un pieņemt savienojumus no klienta ligzdām, katram klienta savienojumam izveidojot jaunu Socket objektu.- Lietojumprogramma klienta-servera modelī: tipiskā klienta-servera modelī serverī tiek izveidots objekts ServerSocket, lai klausītos noteiktā portā. Kad klients vēlas izveidot savienojumu, tas izveido Socket objektu, kas mēģina izveidot savienojumu ar servera IP adresi un portu. Kad ServerSocket
accept()
metode nosaka savienojuma pieprasījumu, tā atgriež jaunu Socket objektu, kas pārstāv klienta savienojumu, ko pēc tam var izmantot saziņai.
Kas ir Socket Class?
Datorprogrammēšanā ligzdas klase attiecas uz programmēšanas interfeisu vai klasi, kas nodrošina veidu, kā datortīklā izveidot tīkla saziņu starp dažādām ierīcēm. Kontaktligzdas ir tīkla izveides pamatjēdziens, un tās izmanto datu sūtīšanai un saņemšanai starp datoriem neatkarīgi no tā, vai tie atrodas tajā pašā lokālajā tīklā vai internetā.
Sockets nodrošina saziņu, izmantojot klienta-servera modeli, kur viena ierīce (serveris) klausās ienākošos savienojumus no citām ierīcēm (klientiem) un atbild uz to pieprasījumiem. Sockets nodrošina standartizētu veidu, kā pārvaldīt datu pārraidi un saņemšanu, apstrādājot tādas detaļas kā datu iesaiņošana, adresēšana un kļūdu apstrāde.
Kas ir ServerSocket klase?
Java valodā ServerSocket klase ir daļa no standarta Java Networking API un tiek izmantota, lai izveidotu servera lietojumprogrammas, kas klausās ienākošos klientu savienojumus tīklā. Tas nodrošina veidu, kā izveidot servera ligzdas, kas var pieņemt ienākošos klientu savienojumus un nodrošināt saziņu starp serveri un vairākiem klientiem.
ServerSocket klase nodrošina metodes servera ligzdu izveidei un pārvaldībai, ienākošo savienojumu pieņemšanai un datu komunikācijas apstrādei. To lieto kopā ar Socket klasi, kas apzīmē klienta puses ligzdu.
Atšķirība starp Socket un ServerSocket klasi
- Socket klase ir galapunkts datu sūtīšanai un saņemšanai tīklā. To izmanto, lai izveidotu savienojumu ar attālo resursdatoru, un tas atvieglo divvirzienu saziņu. ServerSocket klase tiek izmantota, lai izveidotu servera puses galapunktu, kas klausās ienākošos savienojuma pieprasījumus no klientiem. Tas gaida ienākošos savienojumus un, tiklīdz savienojums ir pieņemts, atgriež Socket instanci, kas pārstāv saziņas kanālu ar klientu.
- Kontaktligzdu galvenokārt izmanto klienta lietojumprogrammas, lai uzsāktu saziņu ar serveri. ServerSocket izmanto serveru lietojumprogrammas, lai noklausītos ienākošos savienojumus no klientiem.
- Ligzda tiek izmantota, lai izveidotu izejošo savienojumu ar noteiktu IP adresi un portu attālajā resursdatorā. ServerSocket saistās ar noteiktu servera portu un klausās ienākošos savienojuma pieprasījumus no klientiem.
- Socket atbalsta lasīšanu no attālā galapunkta un rakstīšanu uz to, nodrošinot divvirzienu datu apmaiņu starp klientu un serveri. ServerSocket galvenokārt izmanto ienākošo savienojumu pieņemšanai. Kad savienojums ir pieņemts, iegūtā Socket instance apstrādā faktisko datu saziņu.
- Ligzda ir piemērota klientu lietojumprogrammām, kurām ir jāsazinās ar attālo serveri, piemēram, tīmekļa pārlūkprogrammām, kas mijiedarbojas ar tīmekļa serveriem. ServerSocket ir piemērots serveru lietojumprogrammām, kurām nepieciešams nodrošināt pakalpojumus vairākiem klientiem, piemēram, tērzēšanas serveriem vai tiešsaistes vairāku spēlētāju spēlēm.
Salīdzinājums starp Socket un ServerSocket klasi
Salīdzināšanas parametri | Kontaktligzdu klase | ServerSocket klase |
---|---|---|
Nolūks | Pārstāv klienta galapunktu saziņai. | Izveido servera puses klausīšanās galapunktu. |
lietošana | Klienti sāk savienojumus ar serveriem. | Serveri gaida un pieņem klientu savienojumus. |
Sakari | Atbalsta divvirzienu datu apmaiņu. | Pieņem savienojumus un deleģē datu saziņu uz Sockets. |
Instantiācija | Klients nodrošina attālo IP un portu savienojuma izveidei. | Serveris klausīšanās nolūkā piesaistās noteiktam portam. |
Vienlaicība | Katra ligzda darbojas savā vītnē. | Noklausās savienojumus vienā pavedienā, un pieņemtajiem savienojumiem tiek izveidoti jauni pavedieni. |
- https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=9ef9c58042b19d44b428803a5a6c82ecb91b85ca
- https://ieeexplore.ieee.org/abstract/document/224019/
Pēdējo reizi atjaunināts: 20. gada 2023. augustā
Sandeep Bhandari ir ieguvis inženierzinātņu bakalaura grādu datorzinātnēs Tapara universitātē (2006). Viņam ir 20 gadu pieredze tehnoloģiju jomā. Viņam ir liela interese par dažādām tehniskajām jomām, tostarp datu bāzu sistēmām, datortīkliem un programmēšanu. Vairāk par viņu varat lasīt viņa vietnē bio lapa.