7. Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π½Π° ΡΠΈΡ. 5.5, Π΅ΡΠ»ΠΈ IP-Π°Π΄ΡΠ΅Ρ ΡΠ·Π»Π° ΡΠ΅ΡΠ²Π΅ΡΠ°, Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ connect, ΡΠ²Π»ΡΠ΅ΡΡΡ IP-Π°Π΄ΡΠ΅ΡΠΎΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ Ρ ΠΊΡΠ°ΠΉΠ½ΠΈΠΌ ΠΏΡΠ°Π²ΡΠΌ ΠΊΠ°Π½Π°Π»ΡΠ½ΡΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π° Π½Π΅ IP-Π°Π΄ΡΠ΅ΡΠΎΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ Ρ ΠΊΡΠ°ΠΉΠ½ΠΈΠΌ Π»Π΅Π²ΡΠΌ ΠΊΠ°Π½Π°Π»ΡΠ½ΡΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ?
8. Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡ ΠΎ-ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π» (ΡΠΌ. Π»ΠΈΡΡΠΈΠ½Π³ 5.14), ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ Π±Π°ΠΉΡΠΎΠ², Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΠ΅Π» ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ, Π½ΠΎ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΠ΅Π» ΠΎΡΠ²Π΅Ρ Π½Π΅Π²Π΅ΡΠ΅Π½. ΠΠΎΡΠ΅ΠΌΡ? (ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°: Π½Π°ΡΠΈΡΡΠΉΡΠ΅ ΡΡ Π΅ΠΌΡ ΠΎΠ±ΠΌΠ΅Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ΅ΡΠ΅Π· ΡΠΎΠΊΠ΅Ρ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΡΠΈΡ. 3.4.)
9. Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 5.13 ΠΈ 5.14 ΠΌΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ Π±Π°ΠΉΡΠΎΠ² Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π΅ΡΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π±Π°ΠΉΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ htonl, Π° ΡΠ΅ΡΠ²Π΅Ρ Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ntohl Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΠ΅ΡΠ΅Π΄ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°?
10. Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 5.13 ΠΈ 5.14, Π΅ΡΠ»ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ·Π»Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ SPARC, Π³Π΄Π΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΠ° long Π·Π°Π½ΠΈΠΌΠ°ΡΡ 32 Π±ΠΈΡΠ°, Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ·Π»Π° ΡΠ΅ΡΠ²Π΅ΡΠ° β Digital Alpha, Π³Π΄Π΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΠ° long Π·Π°Π½ΠΈΠΌΠ°ΡΡ 64 Π±ΠΈΡΠ°? ΠΠ·ΠΌΠ΅Π½ΠΈΡΡΡ Π»ΠΈ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ, Π΅ΡΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎΠΌΠ΅Π½ΡΡΡΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ?
11. ΠΠ° ΡΠΈΡ. 5.5 ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ IP-Π°Π΄ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ IP Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ. Π§ΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ?
ΠΠ»Π°Π²Π° 6
ΠΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°: ΡΡΠ½ΠΊΡΠΈΠΈ select ΠΈ poll
6.1. ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π ΡΠ°Π·Π΄Π΅Π»Π΅ 5.12 ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ Π½Π°Ρ TCP-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π΄Π²Π° Π²Ρ ΠΎΠ΄Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠ° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ: ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π²Π²ΠΎΠ΄Π° ΠΈ ΡΠΎΠΊΠ΅Ρ TCP. ΠΡΠΎΠ±Π»Π΅ΠΌΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ, ΡΠΎΡΡΠΎΡΠ»Π° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ Π±ΡΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ Π² Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ fgets (ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π²Π²ΠΎΠ΄Π°), ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΌΠΎΠ³ Π±ΡΡΡ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½. TCP ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅Π³ΠΌΠ΅Π½Ρ FIN ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ TCP ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ ΠΏΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π²Π²ΠΎΠ΄Π°, ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΈΠ·Π½Π°ΠΊ ΠΊΠΎΠ½ΡΠ° ΡΠ°ΠΉΠ»Π°, ΠΏΠΎΠΊΠ° Π½Π΅ ΡΡΠΈΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠΎΠΊΠ΅ΡΠ° (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ·ΠΆΠ΅). ΠΠ°ΠΌ Π½ΡΠΆΠ½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΡΠ΄ΡΡ, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π³ΠΎΡΠΎΠ² ΠΊ Π·Π°ΠΏΠΈΡΠΈ Π½ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ ). ΠΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ (multiplexing) Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ select ΠΈ poll. ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΊΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ select, Π²Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ Π² ΡΡΠ°Π½Π΄Π°ΡΡ POSIX, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ pselect.
ΠΠ ΠΠΠΠ§ΠΠΠΠΠ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΎΠΏΡΠΎΡΠ° (poll device), ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΌΠΈ. ΠΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² Π³Π»Π°Π²Π΅ 14.
ΠΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π²ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ :
β ΠΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² (ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ Π²Π²ΠΎΠ΄ ΠΈ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠΎΠΊΠ΅Ρ), Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°- Π²ΡΠ²ΠΎΠ΄Π°. ΠΡΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ.
β ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ ΠΎΡΡ ΡΡΠΎ ΠΈ ΡΠ΅Π΄ΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ, ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΊΠ΅ΡΠΎΠ². Π’Π°ΠΊΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅ΠΌ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 16.5 ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ select Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
β ΠΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ TCP ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΈ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠΎΠΊΠ΅Ρ, ΠΈ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠ΅ ΡΠΎΠΊΠ΅ΡΡ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 6.8.
β ΠΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Ρ TCP, ΠΈ Ρ UDP, ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°. Π’Π°ΠΊΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 8.15.
β ΠΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΡΠΆΠ± ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π΅ΠΌΠΎΠ½ inetd, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΠ°Π½ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 12.5), ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°.
ΠΠ±Π»Π°ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠΡΠ±ΠΎΠΌΡ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ.
6.2. ΠΠΎΠ΄Π΅Π»ΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ select ΠΈ poll, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ Π½Π°Π·Π°Π΄ ΠΈ ΡΡΡΠ½ΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ Π½Π°ΠΌ Π² Unix:
β Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΡΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄;
β Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΡΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄;
β ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° (ΡΡΠ½ΠΊΡΠΈΠΈ select ΠΈ poll);
β Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄, ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ (ΡΠΈΠ³Π½Π°Π» SIGIO);
β Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄ (ΡΡΠ½ΠΊΡΠΈΠΈ POSIX aio_).
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΡΡΠΎΡ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΠΈ, Π° Π·Π°ΡΠ΅ΠΌ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ Π½Π΅ΠΌΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²Π° Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΠΌΠΈ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ Π³Π»Π°Π²Π°Ρ .
ΠΠ°ΠΊ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π°, ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ Π΄Π²Π΅ ΡΠ°Π·Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²Π²ΠΎΠ΄Π°:
1. ΠΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ .
2. ΠΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΎΡ ΡΠ΄ΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΡ.
ΠΠ΅ΡΠ²ΡΠΉ ΡΠ°Π³ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²Π²ΠΎΠ΄Π° Π½Π° ΡΠΎΠΊΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΡΠ΅ΡΠΈ. ΠΠΎΠ³Π΄Π° ΠΏΠ°ΠΊΠ΅Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ, ΠΎΠ½ ΠΊΠΎΠΏΠΈΡΡΠ΅ΡΡΡ Π² Π±ΡΡΠ΅Ρ Π²Π½ΡΡΡΠΈ ΡΠ΄ΡΠ°. ΠΡΠΎΡΠΎΠΉ ΡΠ°Π³ β ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Π±ΡΡΠ΅ΡΠ° ΡΠ΄ΡΠ° Π² Π±ΡΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΠ΄Π΅Π»Ρ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ². ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ ΡΠΎΠΊΠ΅ΡΡ ΡΠ²Π»ΡΡΡΡΡ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΡΠΌΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π² Π½Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΡΠΎΠΊΠ΅Ρ Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌ, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π½Π° ΡΠΈΡ. 6.1.
Π ΠΈΡ. 6.1. ΠΠΎΠ΄Π΅Π»Ρ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΠΌΠ΅ΡΡΠΎ TCP ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ UDP, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΡΠ»ΡΡΠ°Π΅ UDP ΠΏΡΠΈΠ·Π½Π°ΠΊ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡ: ΠΏΠΎΠ»ΡΡΠ΅Π½Π° Π²ΡΡ Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΈΠ»ΠΈ Π½Π΅Ρ. Π ΡΠ»ΡΡΠ°Π΅ TCP ΠΎΠ½ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠΈΡΡΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ Π² ΡΠΎΠΊΠ΅ΡΠ΅ (low water-mark).
Π ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ recvfrom ΠΊΠ°ΠΊ ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠ΄ΡΠΎΠΌ. ΠΠ½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ recvfrom (ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² Π² ΡΠ΄ΡΠ΅, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠ΅ΠΌ ΠΎΡ ΠΠ΅ΡΠΊΠ»ΠΈ, ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ, Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΡΡΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² getmsg Π² ΡΠ΄ΡΠ΅ System V), ΠΎΠ½Π° ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±ΠΎΡΠΎΠΉ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΠΎΠΉ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΄ΡΠ°, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ΅ΡΠ΅Π· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ° ΡΠΈΡ. 6.1 ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ recvfrom, ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΠΊΠ° Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΠΏΡΠΈΠ΄Π΅Ρ ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π° Π² Π±ΡΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠΈΠΏΠΈΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° β ΡΡΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ, ΠΎ ΡΠ΅ΠΌ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π»ΠΎΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 5.9. ΠΡΠΎΡΠ΅ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ recvfrom, Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΠ³Π΄Π° ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ. ΠΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ recvfrom Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΠ΄Π΅Π»Ρ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°
ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠΎΠΊΠ΅Ρ ΠΊΠ°ΠΊ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΡΠΉ, ΠΌΡ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠΎΠΎΠ±ΡΠ°Π΅ΠΌ ΡΠ΄ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: Β«ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΠ°Ρ Π½Π°ΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½Π° Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡΒ». ΠΠ΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΡΠΉ Π²Π²ΠΎΠ΄-Π²ΡΠ²ΠΎΠ΄ ΠΌΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π² Π³Π»Π°Π²Π΅ 16, Π° Π½Π° ΡΠΈΡ. 6.2 Π»ΠΈΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°.
Π ΠΈΡ. 6.2. ΠΠΎΠ΄Π΅Π»Ρ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°
Π ΠΏΠ΅ΡΠ²ΡΡ ΡΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ recvfrom Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ Π½Π΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΄ΡΠΎ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ EWOULDBLOCK. ΠΠΎΠ³Π΄Π° ΠΌΡ Π² ΡΠ΅ΡΠ²Π΅ΡΡΡΠΉ ΡΠ°Π· Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ recvfrom, Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌΠ° Π³ΠΎΡΠΎΠ²Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½Π° ΠΊΠΎΠΏΠΈΡΡΠ΅ΡΡΡ Π² Π±ΡΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ recvfrom ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅.
Π’Π°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΈΠΊΠ»Π΅ ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ recvfrom Π½Π° Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΠΌ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ΅, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠΏΡΠΎΡΠΎΠΌ (polling). ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΠ΄ΡΠΎ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°. Π§Π°ΡΡΠΎ ΡΡΠΎ ΠΏΡΡΡΠ°Ρ ΡΡΠ°ΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π½ΠΎ ΡΠ°ΠΊΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π²ΡΠ΅ ΠΆΠ΅ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΎΠ±ΡΡΠ½ΠΎ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ .
ΠΠΎΠ΄Π΅Π»Ρ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°
Π ΡΠ»ΡΡΠ°Π΅ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ select ΠΈΠ»ΠΈ poll, ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΡΠΈΡ Π΄Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², Π° Π½Π΅ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°. ΠΠ° ΡΠΈΡ. 6.3 ΠΎΠ±ΠΎΠ±ΡΠ°Π΅ΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°.
Π ΠΈΡ. 6.3. ΠΠΎΠ΄Π΅Π»Ρ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°
ΠΡΠΎΡΠ΅ΡΡ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ Π² Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ select, ΠΎΠΆΠΈΠ΄Π°Ρ, ΠΊΠΎΠ³Π΄Π° Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠΎΠΊΠ΅Ρ Π±ΡΠ΄Π΅Ρ Π³ΠΎΡΠΎΠ² Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. ΠΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ select Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΎΠΊΠ΅Ρ Π³ΠΎΡΠΎΠ² Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ recvfrom, ΡΡΠΎΠ±Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌΡ Π² Π±ΡΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.