Π‘ΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° ΠΡΠΏΡΠ°Π²ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΡ. Π Π°Π·ΠΌΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ 800×600 ΠΈ 32 Π±ΠΈΡΠ° ΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΎΠΊΠΎΠ»ΠΎ 2 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ, ΡΡΠΎ Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ, Ρ.ΠΊ. Π²ΡΠ΅ΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΆΠ΅ΡΡΠΊΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. ΠΠΎ 32 Π±ΠΈΡΠ° Π½Π° ΠΏΠΈΠΊΡΠ΅Π»Ρ Π²ΠΎΠ²ΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
1. ΠΠ½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Π·Π΄Π΅Π».
1.1 ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ TCP/IP.
1.2 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Windows Sockets.
2. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡΠΊΠΈΠΉ ΡΠ°Π·Π΄Π΅Π».
2.1 Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ°.
2.2 ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΠΎΠΊΠ΅Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ°.
2.3 ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΠΎΠΊΠ΅Ρ-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
2.4 ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ .
2.5 Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΡΡΡΡ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ.
2.6 ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π°.
3. Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Π·Π΄Π΅Π».
3.1 ΠΡΠ±ΠΎΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
3.2 Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
3.3 Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ.
3.4 ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
3.5 Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅.
3.6 Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°.
3.7 Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
3.7.1 Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ.
3.7.2 Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΡΠ΅Π½ΠΈΠΊΠ°.
4. ΠΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·Π΄Π΅Π».
4.1 Π‘ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ .
4.2 Π‘ΠΆΠ°ΡΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ (Π΄Π°Π»Π΅Π΅ ΠΠ), Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΠ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΆΠΈΠ·Π½ΠΈ Π»ΡΠ΄Π΅ΠΉ. ΠΡΠΎΡΠ΅ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ»ΠΊΠ°Π΅Ρ Π»ΡΠ΄Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π½ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ΄Π°Π»ΠΈΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ, ΠΊ Π²ΠΎΠ²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π² ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΡΡΠ³Π°. Π‘ΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ, ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΏΠΎΡΡΠ°, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ICQ, Miranda), ΡΠ°ΠΊΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅.
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΡΠ΅ΠΌΡΡΡΡ ΠΊ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠΎΠ΄ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠ΅ΠΌ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°, ΠΈ ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ°Π½ΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΠΎΠ±ΡΡΠ°ΡΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ ΠΈ ΡΠΏΡΠ°Π²ΠΊΠ΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ²ΠΎΠΈΡΡ ΠΈΡ , Π½ΠΎ Π½Π° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ. ΠΠΎΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡ ΠΎΠ± ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠΌ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌ Π²Π΅ΡΡΠΌΠ° Π°ΠΊΡΡΠ°Π»Π΅Π½. Π§ΡΠΎΠ±Ρ Π½Π°ΡΡΠΈΡΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ (ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ, Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ) Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ ΠΎΡΠ²Π°ΠΈΠ²Π°ΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΠΊΡΡΡΠΎΠ² Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°Π½ΡΡΠΈΠΉ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΠ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²ΠΎΠΎΡΡΠΆΠΈΡΡΡΡ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠΎΠΉ ΠΈ Π΄ΠΎΠ»Π³ΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠ²Π°ΡΡΡΡ, ΡΠΎ Π»ΡΠ±ΠΎΠΉ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Π½Π°ΡΡΠΈΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. Π£ ΠΌΠΎΠ»ΠΎΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, Π½Π΅Ρ, ΡΠΆΠ΅ ΡΠΎΠ΄ΠΈΠ²ΡΠΈΠ΅ΡΡ Π² ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΡΡ, ΠΎΠ½ΠΈ Ρ Π΄Π΅ΡΡΡΠ²Π° Π²ΠΏΠΈΡΠ°Π»ΠΈ Π² ΡΠ΅Π±Ρ Π»ΠΎΠ³ΠΈΠΊΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠΎ ΡΡΠ°ΡΡΠ΅ΠΌΡ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ ΡΡΠΎ Π΄Π°Π΅ΡΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ Π²ΠΎΡΠΏΠΈΡΡΠ²Π°Π»ΠΈΡΡ ΠΈ Π²ΡΡΠΎΡΠ»ΠΈ Π² Π΄ΡΡΠ³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΈ ΡΠ΅ΠΉΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ Π²Π·ΡΡΠ², ΠΎΠ½ΠΈ Ρ ΡΡΡΠ΄ΠΎΠΌ Π°Π΄Π°ΠΏΡΠΈΡΡΡΡΡΡ ΠΊ Π½ΠΎΠ²ΡΠΌ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌ. ΠΠ·-Π·Π° Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ ΠΎΡΠΎΡΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ Π½Π΅ Π½ΡΠΆΠ½Ρ, ΠΎΠ½ΠΈ Π½Π΅ ΡΠΌΠΎΠ³Π»ΠΈ ΠΎΡΠ²ΠΎΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ°Π±ΠΎΡΡ. ΠΠ½ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ ΠΎΡΡΠ°Π»ΠΈΡΡ Π±Π΅Π· ΡΠ°Π±ΠΎΡΡ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· Π½ΠΈΡ ΡΠΌΠ΅Π½ΠΈΠ»ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡ, Π° ΠΊΡΠΎ-ΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΡΡΠΎ Ρ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ, ΡΠ΅ΠΌ, Π΅ΡΠ»ΠΈ Π±Ρ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.
ΠΠ°ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π»Π΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡ, ΡΠ΅ΠΌ ΡΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠ΅ ΠΊΡΡΡΡ. ΠΠ½ΠΎΠ³ΠΈΠ΅ Π»ΡΠ΄ΠΈ Π½Π΅ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΄Π΅Π»ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠ»Π°ΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π΄Π΅Π½ΡΠ³ΠΈ Π·Π° ΠΊΡΡΡΡ. ΠΠΎ Π΅ΡΠ»ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ, ΡΠΎ Π½Π°Π΄ΠΎ ΠΏΠΎΠΊΡΠΏΠ°ΡΡ Π΄ΠΎΡΠΎΠ³ΠΎΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π°Π½ΠΈΠΌΠ°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² Π΄Π»Ρ Π΅Π³ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΈ, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠ΅Π½Ρ Π·Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ. ΠΠΎ Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠ΅ΡΠ΅Π²ΠΎΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, ΡΠΎ ΡΡΠ½ΠΎ, ΡΡΠΎ Π²ΡΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΅Π³ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π±ΡΠ΄ΡΡ ΠΎΠΏΠ»Π°ΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ, ΠΈ ΡΡΠΎΡ ΡΠ°ΠΊΡ Π½Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΡΠ°ΠΌΠΈΡ ΠΊΡΡΡΠΎΠ². ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ ΡΠ΅ΠΌΡ ΠΏΠΎ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ°Π·ΠΎΡΠ»Π°ΡΡ Π»Π΅ΠΊΡΠΈΠΈ ΠΈ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎ Π½ΠΈΠΌ ΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ Π»Π΅ΠΊΡΠΈΡΠΌ ΠΈ Π·Π°Π΄Π°Π½ΠΈΡΠΌ, Π½ΠΎ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈΠ»ΠΈ Π΄ΠΎΠ»Π³ΠΎ ΠΎΡΠ²Π΅ΡΠ°ΡΡ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΏΠΎ ΡΡΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ ΠΈ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ΄Π·Π°Π΄Π°ΡΠ° Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. Π’ΠΎ Π΅ΡΡΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ΅Π½ΠΈΠΊΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΌΠΈ ΠΈ Π·Π°Ρ Π²Π°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ .
Π‘ΡΠ΅ΠΊ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² TCP/IP Π΄Π°Π²Π½ΠΎ ΡΡΠ°Π» ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π² ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ , ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°ΠΌΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π°ΠΏΠΈΡΠ°Π½Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ TCP/IP, ΡΠΎ, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΠΎΠ½Π° ΡΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, Π²Π΅Π·Π΄Π΅. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ΡΡΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ΅Π· ΡΡΠ΅ΠΊ TCP/IP.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅:
1. ΠΠ°ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½Π°Ρ ΡΠ΅ΡΡ.
2. ΠΠ²Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΊΠ°ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ ΡΠ΅ΡΠΈ.
3. ΠΠ‘ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Windows sockets 1.1 ΠΈ Π²ΡΡΠ΅.
4. ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΡ (ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ: Pentium3 800 Mhz, 64 Mb RAM).
1. ΠΠ½Π°Π»ΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Π·Π΄Π΅Π».
1.1 ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ TCP/IP.
ΠΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ TCP/IP ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ²ΠΎΠ»ΡΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ ARPANET. Π Π°Π±ΠΎΡΡ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΠΈ ARPANET Π±ΡΠ»ΠΈ Π½Π°ΡΠ°ΡΡ ΡΡΠ΄ΠΎΠΌ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠΎΠ² Π‘Π¨Π ΠΈ ΡΠΈΡΠΌΠΎΠΉ BBN Π² 1968 Π³. Π 1971 Π³. ΡΠ΅ΡΡ Π±ΡΠ»Π° Π²Π²Π΅Π΄Π΅Π½Π° Π² ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π»Π° Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ²ΠΎΠΈΡ ΡΠ·Π»ΠΎΠ² ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ:
1. ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ Π²Ρ ΠΎΠ΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ·Π΅Π»;
2. ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ·Π»Π°ΠΌΠΈ ΡΠ΅ΡΠΈ;
3. ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΏΠΎΡΡΠ°.
ΠΡΠ΅ ΡΡΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Π±Π°Π·ΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ Π½Π° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΡ ΡΡΠ»ΡΠ³Π°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠΈ NCP (Network Control Program), ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅ΠΉ ΡΠ²ΠΎΠΉ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ². ΠΠ°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΡΠΉ ΠΊ 1974 Π³. ΠΎΠΏΡΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠΈ ARPANET Π²ΡΡΠ²ΠΈΠ» ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² NCP ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡ Π½Π°Π±ΠΎΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ², ΠΏΠΎΠ»ΡΡΠΈΠ²ΡΠ΅ΠΌΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ TCP/IP:
1. Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΡΡΠ΅Π΄Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ;
2. Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΠΈ ΠΠΠ Π»ΡΠ±ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ;
3. Π΅Π΄ΠΈΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ·Π»Π°ΠΌΠΈ Π² ΡΠ΅ΡΠΈ;
4. ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ².
Π¨ΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π½ΡΠ½Π΅ Π²Π΅ΡΡΠΈΡ 4 ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² TCP/IP Π±ΡΠ»Π° ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° Π² 1981 Π³. Π² Π²ΠΈΠ΄Π΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ², Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ RFC (Request For Comment). ΠΠΎΠ»Π½ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΡΠ΅ΡΠΈ ARPANET Π½Π° Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ Π±ΡΠ» Π·Π°Π²Π΅ΡΡΠ΅Π½ Π² 1982 Π³. ΠΡΠ° ΡΠ΅ΡΡ ΡΡΠ³ΡΠ°Π»Π° ΡΠΎΠ»Ρ «Π·Π°ΡΠΎΠ΄ΡΡΠ°» Π²ΡΠ΅ΠΌΠΈΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ Internet, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ Π½Π° Π±Π°Π·Π΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² TCP/IP. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² TCP/IP ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ΄Π°ΡΠ½ΠΎΠΉ Π² Π²Π΅ΡΡΠΈΡΡ BSD4.2 ΠΈ BSD4.3 ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ UNIX. ΠΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π»ΠΎΠ½ΠΎΠΌ (ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ «de facto») Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ .
Π 1984 Π³. ΠΌΠ΅ΠΆΠ΄ΡΠ½Π°ΡΠΎΠ΄Π½Π°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΡΡΡΠ°Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ISO ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»Π° ΠΌΠΎΠ΄Π΅Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΡΠΊΡΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌ OSI (Open System Interconnection), ΡΠ²Π»ΡΡΡΡΡΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ΅ΠΊΠΎΠ² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ².
ΠΠ° ΡΠ°Π±Π». 1.1 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΠ΅Ρ ΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² TCP/IP ΠΈ ΡΠ΅ΠΌΠΈΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ OSI.
Π’Π°Π±Π». 1.1.
Π£ΡΠΎΠ²Π½ΠΈ OSI/ISO. | Π£ΡΠΎΠ²Π½ΠΈ TCP/IP. | |
ΠΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ. | ΠΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ. (Application). | |
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ. | ||
Π‘Π΅Π°Π½ΡΠΎΠ²ΡΠΉ. | ||
Π’ΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ. | Π’ΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ (Transmission). | |
Π‘Π΅ΡΠ΅Π²ΠΎΠΉ. | ΠΠ΅ΠΆΡΠ΅ΡΠ΅Π²ΠΎΠΉ (Internetwork). | |
ΠΠ°Π½Π°Π»ΡΠ½ΡΠΉ. | Π‘Π΅ΡΠ΅Π²ΠΎΠΉ. (Network). | |
Π€ΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ. | ||
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ OSI Π² Π΅Π΄ΠΈΠ½ΡΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠΎΠ²Π΅Π½Ρ TCP/IP Π±ΡΠ»ΠΎ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½ΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΡΡΠ΅Π΄Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΠΊΠ°Π½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Π΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π΅Π΄ΠΈΠ½ΡΠΌΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ (ΡΠ΅ΡΠ΅Π²ΡΠΌΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ).
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ TCP/IP ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ΡΠ΅ΡΡΠΌΠΈ (subnetworks). ΠΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡ TCP/IP Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ, ΡΡΠΎΠ±Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ «ΠΏΠΎΠ΄ΡΠ΅ΡΠ΅ΠΉ» Π²ΡΡΡΡΠΏΠ°Π»ΠΈ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠΈ Ρ ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΡΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ², ΡΠ·Π»Π°ΠΌΠΈ, ΡΠ»ΡΠ·Π°ΠΌΠΈ ΠΈ Ρ. ΠΏ.
2. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² TCP/IP.
ΠΠ° ΡΠ°Π±Π». 2.1 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² TCP/IP, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π½Π° ΡΡΠ΅Ρ Π½ΠΈΠΆΠ½ΠΈΡ ΡΡΠΎΠ²Π½ΡΡ ΡΡΠ΅ΠΊΠ°.
Π’Π°Π±Π». 1.2.
Π’ΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ. | TCP, UDP. | |
ΠΠ΅ΠΆΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠΎΠ²Π΅Π½Ρ. | IP, ICMP. | |
Π‘Π΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠΎΠ²Π΅Π½Ρ. | Ethernet, X.25, Token Ring. | |
ΠΡΠ°Π΅ΡΠ³ΠΎΠ»ΡΠ½ΡΠΌ ΠΊΠ°ΠΌΠ½Π΅ΠΌ Π²ΡΠ΅ΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΠΆΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» IP (Internet Protocol). Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ ΡΠ·Π»ΠΎΠ² ΡΠ΅ΡΠΈ ΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π΄Π°Π½Π½ΡΡ . ΠΠ΅ΠΆΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ICMP (Internet Control MessageProtocol) ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π² ΡΠ°Π±ΠΎΡΠ΅ ΡΠ΅ΡΠΈ. ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΡΠΎΡΠΎΠΊΠΎΠ» ICMP ΠΎΡΠ½Π΅ΡΠ΅Π½ ΠΊ ΠΌΠ΅ΠΆΡΠ΅ΡΠ΅Π²ΠΎΠΌΡ ΡΡΠΎΠ²Π½Ρ ΡΡΠ»ΠΎΠ²Π½ΠΎ, Ρ.ΠΊ., Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΎΠ½ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° IP Π΄Π»Ρ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ, Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠ°ΠΌ Π΄Π»Ρ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ. ΠΠ²ΡΠΌΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠ²Π»ΡΡΡΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ Π΄Π°Π½Π½ΡΡ TCP (Transmission Control Protocol) ΠΈ Π±ΡΡΡΡΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ UDP (User Datagram Protocol). TCP ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ (Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ) ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, Π° UDP — Π±Π΅Π· ΠΎΠ½ΠΎΠ³ΠΎ. Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ (ΠΎΠ±ΡΡΠ½ΠΎ Π²Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ Π² ΡΠΎΡΡΠ°Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ), ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ.
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠΎΡΠ΅Π΄Π½ΠΈΡ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠΉ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ. ΠΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΡΡΠ΅ΠΊΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² TCP/IP ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ Π²Π΅Π΄Π΅ΡΡΡ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΡΡΠΎΡΠ²ΡΠ°ΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ Π² ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΡΡΠΈΡ Π±Π»ΠΎΠΊΠΎΠ². Π Π΄Π°Π½Π½ΠΎΠΉ Π ΠΠ Π½Π°Π·Π²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΡΠΎΠ²Π½Ρ ΡΡΠ΅ΠΊΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ², ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.
Π’Π°Π±Π». 1.3.
Π£ΡΠΎΠ²Π΅Π½Ρ. | ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ . | |
Π’ΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ. | ΠΠ°ΠΊΠ΅Ρ. | |
ΠΠ΅ΠΆΡΠ΅ΡΠ΅Π²ΠΎΠΉ. | Π‘Π΅Π³ΠΌΠ΅Π½Ρ. | |
Π‘Π΅ΡΠ΅Π²ΠΎΠΉ. | ΠΠ°Π΄Ρ | |
ΠΠ΅ΠΆΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» IP ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½ Π² RFC 791. ΠΠ³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½ΠΈΠΆΠ΅:
1. ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄Π΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ IP-ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ (ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ IP-ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° — 65 535 Π±Π°ΠΉΡ);
2. ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π±Π΅Π· ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ;
3. Π΄Π»Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ·Π»ΠΎΠ² ΡΠ΅ΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°Π΄ΡΠ΅Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ 4 Π±Π°ΠΉΡΠ°;
4. ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ IP-ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ²;
5. IP-ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ Π² ΡΠ΅ΡΠΈ;
6. Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ IP-ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² Π°Π΄ΡΠ΅ΡΠ°ΡΡ;
7. Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΅Π΄ΡΡΠ² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ IP-ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΡΡΠ»Π°ΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½ΠΎΠΉ (flow control);
8. Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ IP-ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² Π½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Π΅.
ΠΡΠΎΡΠΎΠΊΠΎΠ» ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ TCP (Transmission Control Protocol) ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈ Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ , ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΌΠ΅ΠΆΡΠ΅ΡΠ΅Π²ΡΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ IP. ΠΡΠ½ΠΎΠ²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° TCP — ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π² ΡΠ΅ΡΠΈ. ΠΠ³ΠΎ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ IP-ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΡΠ°Π²Π΅Π½ 6. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° TCP Π΄Π°Π½ΠΎ Π² RFC 793.
ΠΠ³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½ΠΈΠΆΠ΅:
1. ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ (Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ) ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ;
3. ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π΄ΡΠΏΠ»Π΅ΠΊΡΠ½ΡΡ ΡΠ²ΡΠ·Ρ;
4. ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΉ (Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ) ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ;
5. Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ»ΠΊΠΈ ΡΠ°ΡΡΠΈ Π΄Π°Π½Π½ΡΡ , ΠΊΠ°ΠΊ «ΡΠΊΡΡΡΠ΅Π½Π½ΡΡ » ;
6. Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ² ΠΏΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ 16-Π±ΠΈΡΠΎΠ²ΡΠ΅ «Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΎΡΡΠΎΠ²» ;
7. ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏ «ΡΠΊΠΎΠ»ΡΠ·ΡΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π°» (sliding window) Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ;
8. ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ΄ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° TCP Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΠΎΠΊΠΎΠ²Π°Ρ, Π½Π° ΡΠ°ΠΌΠΎΠΌ ΠΆΠ΅ Π΄Π΅Π»Π΅ ΠΎΠ±ΠΌΠ΅Π½ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ°ΡΡΠ½Π΅ΡΠ°ΠΌΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ.
ΠΡΠΎΡΠΎΠΊΠΎΠ» Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ UDP (User Datagram Protocol) ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈ Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ , ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΌΠ΅ΠΆΡΠ΅ΡΠ΅Π²ΡΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ IP. ΠΡΠ½ΠΎΠ²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° UDP — ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ «Π±ΡΡΡΡΠΎΠΉ» ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π² ΡΠ΅ΡΠΈ. ΠΠ³ΠΎ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ IP-ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΡΠ°Π²Π΅Π½ 17. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° UDP Π΄Π°Π½ΠΎ Π² RFC 768.
ΠΠ³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½ΠΈΠΆΠ΅:
1. ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π±Π΅Π· ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ (Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ) ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ;
3. ΠΎΡΠ³Π°Π½ΠΈΠ·ΡΠ΅Ρ ΠΏΠΎΠ±Π»ΠΎΡΠ½ΡΠΉ (Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠ½ΡΠΉ, ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ) ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ;
4. Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ°ΡΡΠ½Π΅ΡΠΎΠ² ΠΏΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ 16-Π±ΠΈΡΠΎΠ²ΡΠ΅ «Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΎΡΡΠΎΠ²» ;
6. Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΊΠ°ΠΊ ΠΏΠΎΡΠ΅ΡΡ UDP-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΡΠ°ΠΊ ΠΈ ΠΈΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅);
7. Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° UDP-ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΠΈ/ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎΡΡΠΈ Π² Π΅Π³ΠΎ ΠΏΡΠΈΠ΅ΠΌΠ΅ Π°Π΄ΡΠ΅ΡΠ°ΡΠΎΠΌ;
8. Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ UDP-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΎΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΊ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΡ;
9. ΠΌΠΎΠΆΠ΅Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ Π² UDP-ΠΏΠ°ΠΊΠ΅ΡΠ΅ Π·Π° ΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΡ;
10. ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ, ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ TCP).
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ, ΠΏΠΎ ΡΡΡΠΈ Π΄Π΅Π»Π°, ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ UDP ΠΈΠ³ΡΠ°Π΅Ρ ΡΠΎΠ»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΊ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΌΠ΅ΠΆΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΊΡΡΡΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» TCP ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠ½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π½Π°Π΄Π΅ΠΆΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π΄ΡΠΏΠ»Π΅ΠΊΡΠ½ΡΡ ΡΠ²ΡΠ·Ρ.
1.2 ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Windows Sockets.
ΠΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ TCP/IP Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° OS Windows — Windows Sockets (Π΄Π°Π»Π΅Π΅ WS). WS — ΡΡΠΎ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ API, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π² OS Windows ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ ΠΊΠ°ΠΊ Ρ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΡΠΌΠΈ, ΡΠ°ΠΊ ΠΈ Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ΅ΡΡΠΌΠΈ. (4) WS ΡΠ½Π°Π±ΠΆΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ. ΠΠ΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π±ΡΠ»Π° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° OS Windows — Π³Π»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ OS ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»Π° ΡΠΎΠΊΠ΅ΡΡ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° WS ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π° Π ΠΈΡ. 1.1.
Π ΠΈΡ. 1.1 ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° WS (ΠΈΡΡΠΎΡΠ½ΠΈΠΊ — www.msdn.microsoft.com).
ΠΠ· Π΄Π°Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΡ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π² WS ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° Π²ΠΈΠ΄Π° ΡΠ΅ΡΠ²ΠΈΡΠ° — Transport ΠΈ Name Space. ΠΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Transport service ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ΅ΠΊΠΈ — TCP/IP, Bluetooth ΠΈ.Ρ.Π΄., ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ². ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ Name Space service provider ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Domain Naming System (DNS), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΌ Π² ΡΠ΅ΡΠΈ.
Π‘ΠΎΠΊΠ΅Ρ — ΡΡΠΎ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΏΡΠΈΡΡΡΠΈΠΌΠΈ Π΅ΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ. ΠΠΎ ΡΡΡΠΈ, ΡΡΠΎ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π² ΡΠΎΡΡΠ°Π² ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ (ΠΠ‘) ΠΈ ΠΏΡΠΈΠ·Π²Π°Π½Π½ΡΠΉ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΠ‘. Π ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΡΠ΅ΠΌΠΈΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ OSI-ΡΠΎΠΊΠ΅ΡΡ Π»Π΅ΠΆΠ°Ρ Π½Π° ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΌ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅. Π Windows ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΠΊΠ΅ΡΠΎΠ² Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ 3.11.
ΠΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Windows Sockets ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· DLL Ws232.dll, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ Winsock-ΡΡΠ½ΠΊΡΠΈΡΠΌ (ΡΠΌ. ΡΠΈΡ. 1.2). Ws232.dll Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½ ΠΈ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ² ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Msafd. dll Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ°. Msafd. dll ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ-ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΈ Π΄Π»Ρ Winsock (ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΌΠΈ Π΄Π»Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ²), Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΡΡΠΎΠ²Π½Ρ ΡΠ΄ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Wshtcpip. dll ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΎΠΌ Π΄Π»Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° TCP/IP, Π° Wshnetbs. dll — Π΄Π»Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° NetBEUI. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Mswsock. dll ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Microsoft Winsock.
ΠΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ° Msafddll ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ΅ΡΠ²ΠΈΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ AFD. sys (Ancillary Function driver, AFD) Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΎΠΊΠ΅ΡΠΎΠ². AFD ΡΠ²Π»ΡΠ΅ΡΡΡ TDI-ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠ»ΠΊΠ° ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΡΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² TDI IRP Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ². AFD Π½Π΅ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Msafd. dll ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ AFD ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠΎΠΊΠ΅ΡΠΎΠΌ, ΡΠ°ΠΊ ΡΡΠΎΠ±Ρ AFD ΠΌΠΎΠ³ ΠΎΡΠΊΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ-ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ΅Π΅ ΡΡΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ».
Π ΠΈΡ. 1.2 ΡΡ Π΅ΠΌΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° WS (ΠΈΡΡΠΎΡΠ½ΠΈΠΊ-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ www.hardline.ru).
2. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡΠΊΠΈΠΉ ΡΠ°Π·Π΄Π΅Π».
2.1 Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π±ΡΠ΄ΡΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΈ ΡΡΠ΅Π½ΠΈΠΊ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΌΠΈ Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΡ Π΅ΠΌΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΈ ΡΡΠ΅Π½ΠΈΠΊΠ° (Π ΠΈΡ. 2.1).
Π ΠΈΡ. 2.1 Π‘Ρ Π΅ΠΌΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΈ ΡΡΠ΅Π½ΠΈΠΊΠ° Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠΎΠ³Π΄Π° ΡΡΠ½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΡΠ΅Π½ΠΈΠΊΠ° ΠΈ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΡΠΌΠ°ΡΡ Π½Π°Π΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π°ΡΠΈ.
ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· Π΄Π²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ — ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ.
Π ΠΈΡ. 2.2 Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΌ ΡΡΠ°ΠΏΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π±ΡΠ»ΠΎ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΡ Π΅ΠΌΡ, ΡΠΎ Π΅ΡΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ΅ΡΠΈΡΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡ. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΡΡ Π΅ΠΌΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π° Π ΠΈΡ. 2.2. ΠΠ· ΡΡ Π΅ΠΌΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ, ΡΡΠΎ Π³Π»Π°Π²Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅-ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΡΡΡΡ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ, ΠΏΡΠΈΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π² ΠΎΠΊΠ½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΡΠ²Π»ΡΡΡΡΡ: ΠΏΡΠΈΠ΅ΠΌ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° ΡΠ΅ΡΠ²Π΅ΡΡ.
2.2 ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΠΎΠΊΠ΅Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ° Π ΠΏΡΠ½ΠΊΡΠ΅ 1.2 Π±ΡΠ»ΠΎ ΠΎΡΠ²Π΅ΡΠ΅Π½ΠΎ ΠΎΠ±ΡΠ΅Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ WS. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΡΠ΅ΡΠ°ΡΡΠ΅Π³ΠΎ Π·Π°Π΄Π°ΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ OS Windows Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄Π²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ — ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ. ΠΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, Π° ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅.
Π‘Ρ Π΅ΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.3.
Π ΠΈΡ. 2.3 Π‘Ρ Π΅ΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ WS (Π° ΡΠΎΡΠ½Π΅Π΅, ws232.dll), Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ:
int WSAStartup (WORD ΠΡΠΈΠ±ΠΊΠ°! ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ., LPWSADATA ΠΡΠΈΠ±ΠΊΠ°! ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ.);
ΠΠ΅ΡΠ²ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ — Π²Π΅ΡΡΠΈΡ WS, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠΎΡΠΎΠΉ — ΡΡΡΡΠΊΡΡΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ WS, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΊΠ΅ΡΠΎΠ² (ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ WS 2.0), ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ WS, ΠΎΠ±ΡΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ WS, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π½Π° Π΄Π°Π½Π½ΠΎΠΉ ΠΠΠΠ. Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ»Ρ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π°, Π° Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΊΠΎΠ΄Ρ ΠΎΡΠΈΠ±ΠΎΠΊ:
WSASYSNOTREADY — ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π΅ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
WSAVERNOTSUPPORTED — Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ WS Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ.
WSAEINPROGRESS — Π΄Π»Ρ Π²Π΅ΡΡΠΈΠΉ 1.1 ΠΈ ΠΌΠ»Π°Π΄ΡΠ΅ — Π·Π°ΠΏΡΡΠ΅Π½ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ.
WSAEPROCLIM — ΠΏΡΠ΅Π²ΡΡΠ΅Π½ Π»ΠΈΠΌΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π·Π°Π΄Π°Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ WS-ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ.
WSAEFAULT — Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ WS Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ:
int WSACleanup (void);
ΠΠ°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ws232.dll Π΄Π°Π½Π½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ»Ρ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π°, Π° Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠ΄Ρ:
WSANOTINITIALISED — Π½Π΅ Π±ΡΠ»Π° Π²ΡΠ·Π²Π°Π½Π° ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° WSAStartup.
WSAENETDOWN — ΡΠ±ΠΎΠΉ Π² ΡΠ°Π±ΠΎΡΠ΅ ΡΠ΅ΡΠΈ.
WSAEINPROGRESS — Π΄Π»Ρ Π²Π΅ΡΡΠΈΠΉ 1.1 ΠΈ ΠΌΠ»Π°Π΄ΡΠ΅ — Π·Π°ΠΏΡΡΠ΅Π½ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° WSAStartup ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠΊΠ΅ΡΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ:
SOCKET socket (int ΠΡΠΈΠ±ΠΊΠ°! ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ., int ΠΡΠΈΠ±ΠΊΠ°! ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ., int ΠΡΠΈΠ±ΠΊΠ°! ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ.);
ΠΠ΅ΡΠ²ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ — ΡΠΈΠΏ Π°Π΄ΡΠ΅ΡΠ°. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ TCP/IP-ΡΠΎΠΊΠ΅ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ AF_INET.
ΠΡΠΎΡΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ — ΡΠΈΠΏ ΡΠΎΠΊΠ΅ΡΠ°. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΈΠΏΠ° ΡΠΎΠΊΠ΅ΡΠΎΠ² — SOCK_STREAM (Π½Π°Π΄Π΅ΠΆΠ½ΡΠ΅, ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠ΅, ΠΏΠΎΠ»Π½ΠΎΠ΄ΡΠΏΠ»Π΅ΠΊΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π±Π°ΠΉΡΠΎΠ² Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ) ΠΈ SOCK_DGRAM (ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ Π² Π²ΠΈΠ΄Π΅ Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π±Π΅Π· ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ) Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠΊΠ΅ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π² ΡΠΈΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌΠΈ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΌ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½ΡΠΌΠΈ.
Π’ΡΠ΅ΡΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ — ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ , ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ ΡΠΈΠΏΠΎΠΌ Π°Π΄ΡΠ΅ΡΠ°. ΠΠ»Ρ ΡΡΠ΅ΠΊΠ° TCP/IP Π·Π°Π΄Π°Π΅ΡΡΡ Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π ΡΠ»ΡΡΠ°Π΅ ΡΠ΄Π°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠΎΠΊΠ΅Ρ (Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ). ΠΠ½Π°ΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΠΊΠΎΠ΄Ρ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΈΠ»ΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ, ΡΠ°Π²Π½ΡΠΉ INVALID_SOCKET.
ΠΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π΄Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΎΠΊΠ΅ΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΠΈΠΏΠ° sockaddr_in, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
struct sockaddr_in.
{.
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
typedef struct sockaddr_in SOCKADDR _IN;
typedef struct sockaddr_in *PSOCKADDR _IN;
typedef struct sockaddr_in FAR *LPSOCKADDR _IN;
ΠΠΎΠ»Π΅ sin_family ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΠΏ Π°Π΄ΡΠ΅ΡΠ°. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π² ΡΡΠΎ ΠΏΠΎΠ»Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ AF_INET, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΈΠΏΡ Π°Π΄ΡΠ΅ΡΠ°, ΠΏΡΠΈΠ½ΡΡΠΎΠΌΡ Π² Internet:
srv_address.sin_family = AF_INET;
ΠΠΎΠ»Π΅ sin_port ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΡΡ — ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅ΠΉ ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΡΠ΅ΡΠΈ. ΠΠ° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ·Π»Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠΎΡΡΡ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΠΏΠΎΠ»Ρ sin_port ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° Π΄Π°Π½Π½ΡΡ . ΠΡΠΎΡ ΡΠΎΡΠΌΠ°Ρ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΈΠ½ΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Intel, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΌΠ»Π°Π΄ΡΠΈΠ΅ Π±Π°ΠΉΡΡ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ°Π½ΡΡΡΡ ΠΏΠΎ ΠΌΠ»Π°Π΄ΡΠΈΠΌ Π°Π΄ΡΠ΅ΡΠ°ΠΌ ΠΏΠ°ΠΌΡΡΠΈ.
Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ Π΄Π°Π½Π½ΡΡ ΡΠ΄ΠΎΠ±Π΅Π½ ΠΏΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΡΠ΅ΡΠ΅ΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΠ·Π»Π°Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅ΡΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ.
ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈΠ· ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°Ρ Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Windows Sockets ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π΄Π»Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»Ρ sin_port Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ htons, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ 16-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠΎΡΠΌΠ°ΡΠ° Intel Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ.
ΠΠΈΠΆΠ΅ ΠΌΡ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π΅ sin_port Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ SERVER, ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΌ Π΄Π°Π»Π΅Π΅:
#define SERV_PORT 5000.
srv_address.sin_port = htons (SERV_PORT);
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΡΠ½ΠΎΠ²Π° ΠΊ ΡΡΡΡΠΊΡΡΡΠ΅ sockaddr_in. ΠΠΎΠ»Π΅ sin_addr ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ in_addr:
struct in_addr.
{.
union.
{.
struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
struct { u_short s_w1,s_w2; } S_un_w;
u_long S_addr;
} S_un;
};
#define s_addr S_un.S_addr.
#define s_host S_un.S_un_b.s_b2.
#define s_net S_un.S_un_b.s_b1.
#define s_imp S_un.S_un_w.s_w2.
#define s_impno S_un.S_un_b.s_b4.
#define s_lh S_un.S_un_b.s_b3.
ΠΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠΊΠ΅ΡΠ° Π² ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π°Π΄ΡΠ΅Ρ IP, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠΉ ΡΠΎΠΊΠ΅Ρ. ΠΡΠ»ΠΈ ΡΠΎΠΊΠ΅Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π»ΡΠ±ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΈΠ· ΡΠ·Π»ΠΎΠ² Ρ Π»ΡΠ±ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ), Π°Π΄ΡΠ΅Ρ Π΄Π»Ρ ΡΠΎΠΊΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
srv_address.sin_addr.s_addr = INADDR_ANY;
Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΠΎΠΊΠ΅Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ IP (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ IP), Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ.
ΠΡΠ»ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ Π°Π΄ΡΠ΅Ρ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅ΡΡΡΠ΅Ρ Π΄Π΅ΡΡΡΠΈΡΠ½ΡΡ ΡΠΈΡΠ΅Π», ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΎΡΠΊΠΎΠΉ (ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ Π΅Π³ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ), ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΠ»Π΅ Π°Π΄ΡΠ΅ΡΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ inet_addr:
dest_sin.sin_addr.s_addr = inet_addr («200.200.200.201»);
Π ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ INADDR_NONE, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΠ΅ΡΠ²Π΅Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ°, Π° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ Π·Π°Π΄Π°Π΅ΡΡΡ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π² Π°Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ gethostbyname, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠ°Ρ Π°Π΄ΡΠ΅Ρ IP:
PHOSTENT phe;
phe = gethostbyname (server_name);
if (phe == NULL).
{.
closesocket (srv_socket);
MessageBox (NULL, «gethostbyname Error», «Error», MB_OK);
return;
}.
memcpy ((char FAR *)&(dest_sin.sin_addr),.
phe->h_addr, phe->h_length);
Π ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΡ gethostbyname Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ NULL. ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΠΈΡΡ, ΠΏΡΠΎΠ²Π΅ΡΠΈΠ² ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ WSAGetLastError.
ΠΡΠ»ΠΈ ΠΆΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΡΠ·Π΅Π» Π½Π°ΠΉΠ΄Π΅Π½ Π² Π±Π°Π·Π΅ DNS ΠΈΠ»ΠΈ Π² ΡΠ°ΠΉΠ»Π΅ HOSTS, ΡΡΠ½ΠΊΡΠΈΡ gethostbyname Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ hostent, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π½ΠΈΠΆΠ΅:
struct hostent.
{.
char FAR * h_name; // ΠΈΠΌΡ ΡΠ·Π»Π°.
char FAR * FAR * h_aliases; // ΡΠΏΠΈΡΠΎΠΊ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ ΠΈΠΌΠ΅Π½.
short h_addr type; // ΡΠΈΠΏ Π°Π΄ΡΠ΅ΡΠ° ΡΠ·Π»Π°.
short h_length; // Π΄Π»ΠΈΠ½Π° Π°Π΄ΡΠ΅ΡΠ°.
char FAR * FAR * h_addr _list; // ΡΠΏΠΈΡΠΎΠΊ Π°Π΄ΡΠ΅ΡΠΎΠ².
#define h_addr h_addr_list[0] // Π°Π΄ΡΠ΅Ρ.
};
typedef struct hostent *PHOSTENT;
typedef struct hostent FAR *LPHOSTENT;
ΠΡΠΊΠΎΠΌΡΠΉ Π°Π΄ΡΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΠΈΡΠΊΠ° h_addr _list[0], Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ»Π°ΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ h_addr. ΠΠ»ΠΈΠ½Π° ΠΏΠΎΠ»Ρ Π°Π΄ΡΠ΅ΡΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠΎΠ»Π΅ h_length.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈ ΡΡΡΡΠΊΡΡΡΡ SOCKADDR, Π·Π°ΠΏΠΈΡΠ°Π² Π² Π½Π΅Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΎΠΊΠ΅ΡΠ° (Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π°Π΄ΡΠ΅Ρ), ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΡ Π°Π΄ΡΠ΅ΡΠ° ΠΊ ΡΠΎΠΊΠ΅ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ bind:
int bind (SOCKET sock, const struct sockaddr FAR * addr, int namelen);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ sock Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΎΠΊΠ΅ΡΠ°, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ socket. Π ΠΏΠΎΠ»Π΅ addr ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ SOCKADDR, Π° Π² ΠΏΠΎΠ»Π΅ namelen — ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ. Π ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΡ bind Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ SOCKET_ERROR. ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠΈΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ WSAGetLastError. ΠΡΠΈΠΌΠ΅Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ bind ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½ΠΈΠΆΠ΅:
if (bind (srv_socket, (LPSOCKADDR)&srv_address,.
sizeof (srv_address)) == SOCKET_ERROR).
{.
closesocket (srv_socket);
MessageBox (NULL, «bind Error», «Error», MB_OK);
return;
}.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ°Π½Π°Π»Π° ΡΠ²ΡΠ·ΠΈ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΠΊΠ΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΠΈΠ΅ΠΌΠ° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ listen:
int listen (SOCKET sock, int backlog);
Π§Π΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ sock ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΎΠΊΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ°Π½Π°Π»Π°. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ backlog Π·Π°Π΄Π°Π΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π΄Π»Ρ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡ 1 Π΄ΠΎ 5). ΠΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π°ΠΏΡΠΎΡΡ Π½Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ (Π°Π΄ΡΠ΅Ρ IP, ΠΏΠΎΡΡ).
ΠΠ°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π²ΡΠΌΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. ΠΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ accept Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. ΠΠ°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΠΎΠ±ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΠΌΠΈ.
Π€ΡΠ½ΠΊΡΠΈΡ accept ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΎΡΠΎΡΠΈΠΏ:
SOCKET accept (SOCKET sock, struct sockaddr FAR * addr,.
int FAR * addrlen);
Π§Π΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ sock Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΎΠΊΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΈΠ΅ΠΌΠ° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ addr Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π°Π΄ΡΠ΅Ρ Π±ΡΡΠ΅ΡΠ°, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΠΈΡΠ°Π½ Π°Π΄ΡΠ΅Ρ ΡΠ·Π»Π°, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ²ΡΠ΅Π³ΠΎΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ. Π Π°Π·ΠΌΠ΅Ρ ΡΡΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΈΠΏΠ° int, Π°Π΄ΡΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ addrlen.
ΠΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π² ΡΠΈΠΊΠ»Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΡΠΌΠΎΠΆΠ΅Π½ΠΈΡ ΠΠ‘ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠ΅ΡΠ²Π΅Ρ. ΠΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Windows Socket, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ.
ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, Π²ΡΠ·ΡΠ²Π°Ρ Π² ΡΠΈΠΊΠ»Π΅ ΡΡΠ½ΠΊΡΠΈΡ accept, Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΡΡΠ½ΠΊΡΠΈΡ WSAAsyncSelect, ΡΠΊΠ°Π·Π°Π² Π΅ΠΉ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠΊΠ½Π° Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
#define WSA_ACCEPT (WM_USER + 1).
// ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
// ΠΏΠΎΠ»ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WSA_ACCEPT.
rc = WSAAsyncSelect (srv_socket, hWnd, WSA_ACCEPT, FD_ACCEPT);
if (rc > 0).
{.
closesocket (srv_socket);
MessageBox (NULL, «WSAAsyncSelect Error», «Error», MB_OK);
return;
}.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠΊΠ΅ΡΠ° srv_socket. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ FD_ACCEPT. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ°Π½Π°Π»Π° ΡΠ²ΡΠ·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠΊΠ½Π° Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ hWnd ΠΏΠΎΠ»ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WSA_ACCEPT, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ WSA_ACCEPT Π²Π½Π°ΡΠ°Π»Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ accept, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ°Π½Π°Π»Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΡ WSAAsyncSelect Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΏΡΠΈΠ΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ ΠΎΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΡΠ°Π·ΡΡΠ²Π° ΠΊΠ°Π½Π°Π»Π° ΡΠ²ΡΠ·ΠΈ.
2.3 ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΠ° ΡΠΎΠΊΠ΅Ρ-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π Π°Π±ΠΎΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° (ΡΠΌ. Π ΠΈΡ. 2.3). ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ WS ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅ΡΠ° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΡΡΠΈ ΡΠ°ΠΊΠΆΠ΅, Π½ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ΅ΠΏΠ΅ΡΡ IP Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° (ΠΏΡΠΈΠΌΠ΅Ρ 192.168.0.10). Π£Π΄ΠΎΠ±Π½Π΅ΠΉ Π·Π°Π΄Π°Π²Π°ΡΡ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠ΅ΠΌ Π΅Π³ΠΎ IP Π°Π΄ΡΠ΅Ρ, Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ gethostbyname. ΠΠ°Π»ΡΡΠ΅ ΡΡΠ°Π·Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ:
connect (s, (struct sockaddr *)&anAddr, sizeof (struct sockaddr));
ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ Ρ Π·Π°ΠΏΡΠΎΡΠΎΠΌ Π½Π° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² connect, ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄.
int connect (SOCKET s, struct sockaddr_in * addr, int addrlen).
ΠΡΠ³ΡΠΌΠ΅Π½Ρ s Π·Π°Π΄Π°Π΅Ρ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ socket’Π°, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ Ρ Π·Π°ΠΏΡΠΎΡΠΎΠΌ Π½Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. Socket Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ socket ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ Π°Π΄ΡΠ΅ΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° bind. ΠΡΠ³ΡΠΌΠ΅Π½Ρ addr Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π°Π΄ΡΠ΅Ρ, ΠΏΡΠΈΠΏΠΈΡΠ°Π½Π½ΡΠΉ socket’Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π΅Π»Π°Π΅ΡΡΡ Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. ΠΡΠ³ΡΠΌΠ΅Π½Ρ addrlen Π·Π°Π΄Π°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ (Π² Π±Π°ΠΉΡΠ°Ρ ) ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ addr.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π±ΡΠ» ΡΡΠΏΠ΅ΡΠ½ΡΠΌ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°-ΡΠ΅ΡΠ²Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»Π° ΠΊ ΡΡΠΎΠΌΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² listen Π΄Π»Ρ socket’Π° Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ.
ΠΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² connect Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ 0, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ — «-1» (ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ ΠΊΠΎΠ΄ ΠΏΡΠΈΡΠΈΠ½Ρ Π½Π΅ΡΡΠΏΠ΅Ρ Π° Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ errno).
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΠΊ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ connect ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΈΠΌ socket Π½Π΅ Π±ΡΠ» ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ Π°Π΄ΡΠ΅ΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ bind, ΡΠΎ ΡΠ°ΠΊΠ°Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. Π ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π±Π΅Π· ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° connect Π½Π΅Ρ. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ — ΠΏΡΠΎΡΡΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΌΡΡΠ» Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ: ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π°Π΄ΡΠ΅Ρ «ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ» Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΏΠΎΡΡΠ»ΠΎΠΊ Π΄Π΅ΠΉΡΠ°Π³ΡΠ°ΠΌΠΌ.
Π ΠΈΡ. 2.4 Π‘Ρ Π΅ΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
2.4 ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΊΠ°Π½Π°Π» ΡΠΎΠ·Π΄Π°Π½, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ TCP Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ send ΠΈ recv, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΎΠ΄ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Windows Sockets.
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ send ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° — Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΎΠΊΠ΅ΡΠ° sock, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ°, Π°Π΄ΡΠ΅Ρ Π±ΡΡΠ΅ΡΠ° buf, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° bufsize ΠΈ ΡΠ»Π°Π³ΠΈ flags:
int send (SOCKET sock, const char FAR* buf, int bufsize, int flags);
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ recv, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ ΠΏΡΠΈΠ΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ , Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ send:
int recv (SOCKET sock, char FAR * buf, int bufsize, int flags);
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ recv ΠΈ send Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΡΠΈΠ½ΡΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ Π±Π°ΠΉΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ recv Π² ΡΠΈΠΊΠ»Π΅ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ½ΡΡΡ Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π° ΠΎΠ΄ΠΈΠ½ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ send ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ recv.
Π ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΎΠ±Π΅ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ SOCKET_ERROR. ΠΠ»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡΠΈΡΠΈΠ½ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ WSAGetLastError.
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠ°Π½Π°Π»Π° ΡΠ²ΡΠ·ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ WSAAsyncSelect, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ FD_READ ΠΈ FD_CLOSE. ΠΡΠΈ ΡΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ WSA_NETEVENT Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π½Π΅ Π²ΡΠ·ΠΎΠ²Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
#define WSA_NETEVENT (WM_USER + 2).
rc = WSAAsyncSelect (srv_socket, hWnd, WSA_NETEVENT,.
FD_READ | FD_CLOSE);
ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠ»ΠΊΠΈ Π΄Π°Π½Π½ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ WSAAsyncSelect Π΅ΡΠ΅ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ FD_WRITE.
ΠΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ WSAAsyncSelect Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΠΎΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΡΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ΅ — Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ SOCKET_ERROR.
2.5 Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΡΡΡΡ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΡΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ Π³Π»Π°Π²Π½ΠΎΠΌΡ ΠΎΠΊΠ½Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅-ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅-ΡΠ΅ΡΠ²Π΅ΡΡ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°-ΡΠ΅ΡΠ²Π΅Ρ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ:
WM_LBUTTONDOWN.
WM_LBUTTONUP.
WM_LBUTTONDBLCLK.
WM_RBUTTONDOWN.
WM_RBUTTONUP.
WM_RBUTTONDBLCLK.
WM_MOUSEMOVE.
ΠΠ΅ΡΠ²ΡΠ΅ ΡΠ΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ ΠΎΠΊΠ½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π°ΠΆΠ°ΡΠΈΠ΅, ΠΎΡΠΏΡΡΠΊΠ°Π½ΠΈΠ΅ ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ (Π΄Π»Ρ Π»Π΅Π²ΠΎΠΉ ΠΈ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ). Π¨Π΅ΡΡΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΌΡΡΠΈ.
ΠΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΅ΡΠ²Π΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅-ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΎΠ½ ΡΠΌΡΠ»ΠΈΡΡΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ Π·Π°ΠΏΡΡΠ΅Π½.
ΠΠΌΡΠ»ΡΡΠΈΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ mouse_event:
VOID mouse_event (DWORD dwFlags, DWORD dx, DWORD dy, DWORD dwData, ULONG_PTR dwExtraInfo);
dwFlags ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠ°ΠΊΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ:
MOUSEEVENTF_LEFTDOWN.
MOUSEEVENTF_LEFTUP.
MOUSEEVENTF_WHEEL.
MOUSEEVENTF_XDOWN.
MOUSEEVENTF_XUP.
MOUSEEVENTF_ABSOLUTE.
MOUSEEVENTF_MOVE.
MOUSEEVENTF_LEFTDOWN.
MOUSEEVENTF_LEFTUP.
MOUSEEVENTF_RIGHTDOWN.
MOUSEEVENTF_RIGHTUP.
MOUSEEVENTF_MIDDLEDOWN.
MOUSEEVENTF_MIDDLEUP.
MOUSEEVENTF_WHEEL.
MOUSEEVENTF_XDOWN.
MOUSEEVENTF_XUP.
dx ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Ρ .
dy ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Ρ.
dwData Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»Π΅ΡΠ° Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ mouse_event ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΡΡΠΊΠΎΠΉ.
ΠΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ:
WM_KEYDOWN.
WM_KEYUP.
ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π³ΠΎΠ²ΠΎΡΠΈ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠ°Π» ΠΊΠ»Π°Π²ΠΈΡΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, Π²ΡΠΎΡΠΎΠ΅, ΡΡΠΎ ΠΎΡΠΏΡΡΡΠΈΠ». ΠΡΠΈ ΠΏΡΠΈΡ ΠΎΠ΄Π΅ ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΊΠ½Π° wParam ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΊΠ»Π°Π²ΠΈΡΠΈ. ΠΠ»ΠΈΠ΅Π½Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ΄ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΈ ΡΠ»Π°Π³ Π½Π°ΠΆΠ°ΡΠΈΡ (Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ»Π°Π²ΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΏΡΡΡΠΈΠ»ΠΈ). Π‘Π΅ΡΠ²Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΌΡΠ»ΠΈΡΡΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠΎΠ±ΡΡΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ keybd_event.
VOID keybd_event (BYTE bVk, BYTE bScan, DWORD dwFlags, PTR dwExtraInfo);
bVk ΠΊΠΎΠ΄ ΠΊΠ»Π°Π²ΠΈΡΠΈ.
bScan Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ.
dwFlags ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°ΠΆΠ°Π»ΠΈ ΠΊΠ»Π°Π²ΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΏΡΡΡΠΈΠ»ΠΈ (Π΅ΡΠ»ΠΈ ΠΎΡΠΏΡΡΡΠΈΠ»ΠΈ KEYEVENTF_KEYUP, ΠΈΠ½Π°ΡΠ΅ 0).
2.6 ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° ΠΡΠΏΡΠ°Π²ΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΡ. Π Π°Π·ΠΌΠ΅Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ 800×600 ΠΈ 32 Π±ΠΈΡΠ° ΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΎΠΊΠΎΠ»ΠΎ 2 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ, ΡΡΠΎ Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ, Ρ.ΠΊ. Π²ΡΠ΅ΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΆΠ΅ΡΡΠΊΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. ΠΠΎ 32 Π±ΠΈΡΠ° Π½Π° ΠΏΠΈΠΊΡΠ΅Π»Ρ Π²ΠΎΠ²ΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΠ²Π΅ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ ΠΊ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ Π² Π³ΡΠ°Π΄Π°ΡΠΈΡΡ ΡΠ΅ΡΠΎΠ³ΠΎ (256 ΡΠ²Π΅ΡΠΎΠ² ΡΠ΅ΡΠΎΠ³ΠΎ). ΠΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ Π² 700 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° ΡΠΆΠΈΠΌΠ°Π΅ΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ ΡΠΆΠ°ΡΠΈΡ LZW, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΡ . Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ°ΠΉΠ» ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΠΊΠΎΠ»ΠΎ 150 ΠΊΠ±, ΡΡΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠΊΡΠ°Π½Π°. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ GetDC, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π½ΠΎΠ»Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° (Ρ.ΠΊ. Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π° ΡΠ°Π²Π΅Π½ Π½ΡΠ»Ρ):
HDC DESK_DC=GetDC (0);
Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ·Π½Π°ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π°, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ½ΠΊΡΠΈΡ GetSystemMetrics, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΡΠΊΡΠ°Π½Π° Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ SM_CXSCREEN ΠΈΠ»ΠΈ SM_CYSCREEN, ΡΡΠ½ΠΊΡΠΈΡ Π²Π΅ΡΠ½Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΠΈ ΠΈΠ»ΠΈ ΠΏΠΎ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
int SCR_X =GetSystemMetrics (SM_CXSCREEN);
int SCR_Y =GetSystemMetrics (SM_CYSCREEN);
ΠΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΡΠΎΠ»Π°, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ CreateCompatibleDC, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠΊΡΠ°Π½Π°:
HDC BMP_DC = CreateCompatibleDC (DESK_DC);
ΠΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ bitmap ΠΈ ΡΠ²ΡΠ·Π°ΡΡ Π΅Π³ΠΎ Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ CreateCompatibleBitmap ΠΈ SelectObject. ΠΠ΅ΡΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅Ρ bitmap Π² Π½Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠΊΡΠ°Π½Π° ΠΈ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ. ΠΡΠΎΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ bitmap ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, Π² Π½Π΅Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ bitmap ΠΈ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ.
HBITMAP DRAW_DC = CreateCompatibleBitmap (DESK_DC, SCR_X, SCR_Y);
SelectObject (BMP_DC, DRAW_DC);
ΠΡΡΠ°Π»ΠΎΡΡ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π° Π½Π° ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ BitBlt, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅:
BOOL BitBlt (.
HDC ΠΡΠΈΠ±ΠΊΠ°! ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ., //Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ.
int ΠΡΠΈΠ±ΠΊΠ°! ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ., // x-ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π° hdcDest.
int ΠΡΠΈΠ±ΠΊΠ°! ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ., // yΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π° hdcDest.
int ΠΡΠΈΠ±ΠΊΠ°! ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ., // ΡΠΈΡΠΈΠ½Π° hdcDest.
int ΠΡΠΈΠ±ΠΊΠ°! ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ., // Π²ΡΡΠΎΡΠ° hdcDest.
HDC ΠΡΠΈΠ±ΠΊΠ°! ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ., // Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°.
int ΠΡΠΈΠ±ΠΊΠ°! ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ., // xΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π° hdcSrc.
int ΠΡΠΈΠ±ΠΊΠ°! ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ., // yΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Π»Π΅Π²ΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΠ³Π»Π° hdcSrc.
DWORD ΠΡΠΈΠ±ΠΊΠ°! ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ. // ΠΊΠΎΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
);
Π€ΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π΄Π»Ρ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΠ»Π°ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ SRCCOPY Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° dwRop:
BitBlt (BMP_DC, 0,0,SCR_X, SCR_Y, DESK_DC, 0,0,SRCCOPY);
Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΡΠ²Π΅ΡΠΎΠ² ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΈΠ· bitmap, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ GetBitmapBits:
LONG GetBitmapBits (.
HBITMAP ΠΡΠΈΠ±ΠΊΠ°! ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ., // Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ bitmap.
LONG ΠΡΠΈΠ±ΠΊΠ°! ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ., // ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌΡΡ Π±Π°ΠΉΡ.
LPVOID ΠΡΠΈΠ±ΠΊΠ°! ΠΠ΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π³ΠΈΠΏΠ΅ΡΡΡΡΠ»ΠΊΠΈ. // Π±ΡΡΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ.
);
ΠΠΎΡΠΎΠΌ ΡΠ²Π΅ΡΠ° ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ ΡΠ²Π΅ΡΠ°ΠΌ Π³ΡΠ°Π΄Π°ΡΠΈΠΈ ΡΠ΅ΡΠΎΠ³ΠΎ. ΠΡΡΡΠΈΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Π³ΡΠ°Π΄Π°ΡΠΈΠΈ ΡΠ΅ΡΠΎΠ³ΠΎ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊΠ°Ρ ΡΠΎΡΠΌΡΠ»Π°:
I=0.299*Ired + 0.587*Igreen + 0.114*Iblue.
ΠΠ΄Π΅ Ired, Igreen, Iblue — ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ, Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΈΠ½Π΅Π³ΠΎ ΡΠ²Π΅ΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ, Ρ. Π΅. ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ Π² ΡΡΠΈ ΡΠ°Π·Π°.
ΠΠΎΡΠ»Π΅ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°Π΅ΡΡΡ ΡΠΆΠ°ΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ LZW. ΠΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΠΌΡΠΌ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄Π΅Ρ Π΄Π°Π½ΠΎ Π»ΠΈΡΡ ΠΊΡΠ°ΡΠΊΠΎΠ΅ Π΅Π³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅.
ΠΡΠ»ΠΈ Π² Π΄Π²ΡΡ ΡΠ»ΠΎΠ²Π°Ρ , ΡΠΎ LZW-ΡΠΆΠ°ΡΠΈΠ΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΊΠΎΠ΄Π°ΠΌΠΈ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π±Π»ΠΈΡΠ° ΡΡΡΠΎΠΊ. Π‘ΠΆΠ°ΡΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΡΠΎΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΠΎΠ΄Ρ, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ LZW-Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ, ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»ΡΠ±ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ, Π½ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π±ΠΈΡ, ΡΠ΅ΠΌ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ». ΠΠ΅ΡΠ²ΡΠ΅ 256 ΠΊΠΎΠ΄ΠΎΠ² (ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ 8-Π±ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ) ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌΡ Π½Π°Π±ΠΎΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ΄Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ ΡΡΡΠΎΠΊΠ°ΠΌ. ΠΠ»ΠΎΠΊ ΡΡ Π΅ΠΌΠ° ΡΠΆΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° LZW ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ 2.4 (Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠ°ΠΉΠ» ΠΏΠΎΡΡΠΈ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΌΠ°ΡΡΠΈΠ²Π°).
Π ΠΈΡ. 2.4 ΠΠ»ΠΎΠΊ ΡΡ Π΅ΠΌΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠΆΠ°ΡΠΈΡ LZW.
ΠΠ° ΡΠΈΡ. 2.4 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΡ Π΅ΠΌΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π°.
Π ΠΈΡ. 2.4 Π‘Ρ Π΅ΠΌΠ° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΊ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΠ΅:
1. ΠΡΠ΅ Π½Π΅ΡΠ΄Π°ΡΠΈ Π² Π²ΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΠ΅, ΠΊΡΠΎΠΌΠ΅ Π½Π΅ΡΠ΄Π°ΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ, ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎΠ²Π΅ΡΠΎΡΡΠ½Ρ ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ Π½Π΅Ρ Π²Π°ΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
2. ΠΠ΅ΡΠ΄Π°ΡΠ° ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΠΈΡΡΡΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ΅ΡΠΈ.
3. ΠΡΠΎΠΌΠ΅ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΡ Π±Π°ΠΉΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΆΠ°ΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°.
Π Π°Π±ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΠΎ ΠΏΡΠΈΠ΅ΠΌΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π°ΡΡΠΈΠΌΠ΅ΡΡΠΈΡΠ½Π° ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΠΎ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ (Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ ΠΈ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅).
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ°ΠΏΡ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ:
1. ΠΡΠΈΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ, ΡΠ°Π·ΠΌΠ΅ΡΠ° Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΡΠΆΠ½ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΡΡ Π²Π΅ΡΡ ΠΌΠ°ΡΡΠΈΠ²:
int Nrem=Narj;
BYTE *buf=new BYTE[Narj],*p=buf;
while (Nrem>0).
{.
int d=recv (srv_socket,(char*)p, Nrem, 0);
if (d>0).
{.
Nrem-=d;
p+=d;
}.
}.
2. Π Π°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ LZW (ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅).
3. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΊ ΡΠ²Π΅ΡΡ Π² Π³ΡΠ°Π΄Π°ΡΠΈΠΈ ΡΠ΅ΡΠΎΠ³ΠΎ:
COLORREF color=RGB (I, I, I);
4. ΠΡΠ²ΠΎΠ΄ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ Π½Π° ΠΎΠΊΠ½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
Π‘ΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ bitmap:
HDC DC=GetDC (hWnd);//ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΎΠΊΠ½Π°.
HBITMAP HBMP=CreateCompatibleBitmap (DC, SCR_X, SCR_Y);//ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ.
HDC NHDC=CreateCompatibleDC (DC); // ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈ bitmap.
ΠΠ°ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡ ΡΠ²ΡΠ·Π°ΡΡ:
SelectObject (NHDC, HBMP);
Π‘ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π² bitmap ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ ΠΈ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ ΠΈΠ· ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΎΠΊΠ½Π°.
SetBitmapBits (HBMP, LEN, cadrbuff);//cadrbuff-ΠΌΠ°ΡΡΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ²Π΅ΡΠ° ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ.
BitBlt (DC, 0, 0, SCR_X, SCR_Y, NHDC, 0, 0, SRCCOPY);
ΠΠΎΠ»Π½Π°Ρ ΡΡ Π΅ΠΌΠ° ΠΏΡΠΈΠ΅ΠΌΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° Π ΠΈΡ. 2.5.
Π ΠΈΡ. 2.5 Π‘Ρ Π΅ΠΌΠ° ΠΏΡΠΈΠ΅ΠΌΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅, ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΠΌΠ°ΡΡΠΈΠ²Π°, Ρ.ΠΊ. LZW ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ.
3. Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°Π·Π΄Π΅Π».
3.1 ΠΡΠ±ΠΎΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΆΠ΅ Π½Π΅ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΠΎΠΊΠΎΠ½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΈ ΡΡΠΎΡ ΡΠ°ΠΊΡ ΡΡΠ°Π·Ρ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΡΠ΅Π΄Ρ, ΠΊΠ°ΠΊ Turbo C ΠΈ Turbo Pascal.
Π ΡΠΈΠ»Ρ Π²ΡΡΠ΅ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΠ²ΠΎΠ΄Π° ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΡΡΠ³ΠΈΡ Π΄ΠΎΠ²ΠΎΠ΄ΠΎΠ² Π²ΡΠ±ΠΎΡ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²Π΅Π»ΡΡ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ΅Π΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ:
1. Borland C++Builder6.
2. Borland Delphi7.
3. Microsoft Visual C++.NET.
Borland C++ Builder6:
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°:
1. ΠΠ΅Π³ΠΊΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
2. ΠΠΈΠ±ΠΊΠΈΠΉ ΠΈ ΠΌΠΎΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π‘++.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
1. ΠΠ΅Π΄Π»Π΅Π½Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΡΡΠ΅Π΄Ρ.
2. ΠΠ΅ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ WinApi (Π±Π΅Π· ΠΊΠΎΡΠΎΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΄Π΅Π»ΠΎΠΌ Π²Π΅ΡΡΠΌΠ° ΡΠ»ΠΎΠΆΠ½ΡΠΌ).
Borland Delphi7:
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°:
1. ΠΠ΅Π³ΠΊΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
2. ΠΡΡΡΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ° ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΊΠΎΠ΄Π° ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°.
3. ΠΠΎΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Object Pascal.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
1. ΠΠ΅ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ WinApi.
2. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Visual Π‘++.NET:
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°:
1. ΠΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΎΡΠ»ΠΈΡΠ°ΡΡΠ°ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ ΠΊΠΎΠ΄Π°.
2. ΠΠ±Π»Π°Π΄Π°Π΅Ρ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΡΠ΅ΠΊΡΡΠ°, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²ΡΠΈΠΊΠ°.
3. Π£Π΄ΠΎΠ±Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ WinApi.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
1. ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ Π»Π΅Π³ΠΊΠΎΡΡΠΈ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΠ΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ Visual C++.NET Π½Π΅ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½Ρ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Borland Delphi7 ΠΈ Borland C++Builder6 ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠ»ΠΎΡ ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΠ‘ Windows. ΠΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ»Π° Π²ΡΠ±ΡΠ°Π½Π° ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Visual C++.NET.
3.2 Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠΎΠ΄ΡΠ»ΡΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ΅ΡΠ²Π΅Ρ:
1. LZW ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠΆΠ°ΡΠΈΠ΅ ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ LZW.
2. Send ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΎΡΠΏΡΠ°Π²ΠΊΡ Π΄Π°Π½Π½ΡΡ .
3. Receive ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΏΡΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ .
4. Server ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΎΠΊΠ΅ΡΠ° ΠΈ Π·Π° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
5. NetΠ‘omm ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ:
1. LZW ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠΆΠ°ΡΠΈΠ΅ ΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ LZW.
2. Send ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΎΡΠΏΡΠ°Π²ΠΊΡ Π΄Π°Π½Π½ΡΡ .
3. Receive ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΏΡΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ .
4. Client ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΡΡΡΡΠΊΡΡΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π·Π°Π΄Π°ΡΠ° ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ WinApi, Π° ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Ρ ΠΎΡΡ ΠΈ Π·Π°ΡΠ²Π»Π΅Π½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ, Π½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π»ΠΈΡΡ ΡΡΠ»ΠΎΠ²Π½ΠΎ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎΡ ΡΠ°ΠΊΡ Π²ΠΎΠ²ΡΠ΅ Π½Π΅ ΠΎΠ±ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ WinApi ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΡΠΊΡΡΡΠ½ΠΎ, Π½ΠΎ Π²ΡΠ΅ ΠΆΠ΅ ΡΠ΄ΠΎΠ±Π½Π΅ΠΉ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ΅Π»ΠΎΡΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-ΡΠ΅ΡΠ²Π΅ΡΠ°:
ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ:
void recvkey (SOCKET s);
ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΌΡΡΠΊΠΈ:
void recvmouse (SOCKET s);
ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π°:
void sendscr (SOCKET s, HWND hWnd);
ΠΠΎ Π²ΡΠ΅Ρ Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡΡ s — ΡΠΎΠΊΠ΅Ρ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Π΅ΠΌΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, Π° hWnd — Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°:
ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΊΡΡΡΠΎΡΠ° (dx, dy — ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΡΡΡΠΎΡΠ°):
void mousemove (SOCKET srv_socket, short dx, short dy);
ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΎΠΉ (.
Vcode — Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠ»Π°Π²ΠΈΡΠΈ, fldown — ΡΠ»Π°Π³, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ Π±ΡΠ»Π° ΠΊΠ»Π°Π²ΠΈΡΠ° Π½Π°ΠΆΠ°ΡΠ° ΠΈΠ»ΠΈ ΠΎΡΠΏΡΡΠ΅Π½Π°).
void sendkey (SOCKET srv_socket, unsigned Vcode, BOOL fldown);
ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° (hWnd — Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΠΎΠΊΠ½Π°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅).
void recvscr (SOCKET srv_socket, HWND hWnd).
3.3 Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΠ²Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ ΡΠ΅ΡΠΈ Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΡ ΠΎΡ 100 ΠΌΠ΅Π³Π°Π±ΠΈΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ. ΠΡΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠ°ΠΆΠ΅ΡΡΡ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΆΠ΅ΡΡΠΊΠΈΠΌ ΠΈ Π΄Π΅Π»Π°Π΅Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ, Π½ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠΈ ΡΠΎ ΡΠΊΠΎΡΠΎΡΡΠ½ΡΠΌ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΠΈ ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡ ΡΠΆΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΡΠΈΠΈ. ΠΡΠΈ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠ΄Π΅Π»Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅ΠΌ Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΌ:
— OS Windows Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Windows Socket 1.1 ΠΈ Π²ΡΡΠ΅.
— 64 Mb RAM.
— CPU ΡΡΠΎΠ²Π½Ρ Pentium3 800Mhz, Athlon 800Mhz ΠΈ Π²ΡΡΠ΅.
— ΠΠΈΠ΄Π΅ΠΎ ΠΊΠ°ΡΡΠΎΡΠΊΠ° 16Mb Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠ°ΠΌΡΡΠΈ.
— ΡΠ΅ΡΠ΅Π²Π°Ρ ΠΊΠ°ΡΡΠΎΡΠΊΠ° 100ΠΠ΅Π³Π°Π±ΠΈΡ/Ρ.
— ΠΠ°ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΠ΅ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ°Ρ 100ΠΠ΅Π³Π°Π±ΠΈΡ/Ρ.
— ΠΌΡΡΡ.
3.4 ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π² ΠΎΠ±Π΅ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π³Π»Π°Π²Π½ΡΠΌ ΠΌΠ΅Π½Ρ ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ:
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°-ΡΠ΅ΡΠ²Π΅Ρ:
Π ΠΈΡ 3.1.
Start server — ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ;
Stop server — ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠ΅ΡΠ΅ΡΡΠ°Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»Π°ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ;
Π ΠΈΡ 3.2.
Π ΠΈΡ 3.3.
Π ΠΎΠΊΠ½Π΅ ΠΎΠΏΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°-ΠΊΠ»ΠΈΠ΅Π½Ρ:
Π ΠΈΡ 3.4.
Main ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Properties ΠΈ Exit.
Properties — ΠΎΠΊΠ½ΠΎ ΠΎΠΏΡΠΈΠΉ.
Π ΠΎΠΊΠ½Π΅ ΠΎΠΏΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ°.
Π ΠΈΡ 3.4.
Π ΠΈΡ 3.5.
Connect — ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ.
Disconnect — ΡΠ°Π·ΠΎΡΠ²Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ.
Π ΠΈΡ 3.6.
Only show — Π²ΠΊΠ»ΡΡΠΈΡΡ/Π²ΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ.
Control — Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (Π²ΡΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ F3).
ΠΠ±ΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ΅Π½Ρ (ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π² ΠΎΠ±ΠΎΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ ):
Π ΠΈΡ 3.7.
Message — ΠΏΠΎΡΠ»Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ.
File — ΠΏΠΎΡΠ»Π°ΡΡ ΡΠ°ΠΉΠ» ΡΠ΅ΡΠ²Π΅ΡΡ.
Π Π΅ΠΆΠΈΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°:
1. ΠΠ°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ (Π ΠΈΡ. 3.8).
Π ΠΈΡ 3.8.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ (Π ΠΈΡ. 3.9).
Π ΠΈΡ 3.9.
3.5 Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΡΡΡΠΌ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π° ΠΆΠ΅ΡΡΠΊΠΈΠΉ Π΄ΠΈΡΠΊ (ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ, Π° ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΡΡΠ΅Π½ΠΈΠΊΠ°). ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π° ΠΎΠ±ΠΎΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠ΅ΡΠΈ ΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΊΠ°ΡΡΠΎΡΠ΅ΠΊ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ° ΡΠ΅ΡΠΈ ΠΈ ΠΌΠ°ΡΠΊΠΈ ΡΠ΅ΡΠΈ.
3.6 Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΈΠΌΠ΅Π½ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΡΡΠ΅Π½ΠΈΠΊΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ±ΡΠ°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅Π½ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² Ρ ΡΡΠ΅Π½ΠΈΠΊΠΎΠ². ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ°) ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠΈΡΡ ΡΡΠ΅Π½ΠΈΠΊΠΎΠ² ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π½ΡΡ ΠΈΠΌ ΠΏΠ°ΡΠΎΠ»ΡΡ . Π ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π΅ΠΌΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅Π½. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° ΠΊΠ°ΠΊ Π±Ρ ΠΈΠ³ΡΠ°Π΅Ρ ΡΠΎΠ»Ρ Π»ΠΎΠ³ΠΈΠ½Π°.
3.7 Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
3.7.1 Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π²Π΅ΡΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΈΠΌΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ½ Ρ ΠΎΡΠ΅Ρ ΡΠ²ΡΠ·Π°ΡΡΡΡ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ ΠΏΡΠΎΠΉΡΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠΎΡΠ΅ΡΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΏΠ°ΡΠΎΠ»Ρ. ΠΡΠΎΡ ΠΏΠ°ΡΠΎΠ»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ, Π΅ΡΠ»ΠΈ ΡΡΠ΅Π½ΠΈΠΊ Ρ ΠΎΡΠ΅Ρ ΡΡΠ°ΡΡΠΈΡ Π΅Π³ΠΎ ΡΡΠ°ΡΡΠΈΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
ΠΠΎΠ³Π΄Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ Π²ΡΠ΄Π°Π΅Ρ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΡΡΠ΅Π½ΠΈΠΊΡ, ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ. Π£ΡΠ΅Π½ΠΈΠΊ ΠΏΡΡΠ°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅, Π° ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΡΡΠ΅Π½ΠΈΠΊΡ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠΎ Π·Π°Π΄Π°Π½ΠΈΠ΅. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΡΡΠ΅Π½ΠΈΠΊ ΠΈ ΡΠ°ΠΌ ΡΠΏΡΠ°Π²ΠΈΡΡΡ Ρ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ.
3.7.2 Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΡΠ΅Π½ΠΈΠΊΠ° Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΠΊΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ Π»ΠΈΡΠ½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π΅Π³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΅ΠΉ. ΠΡΠΎΡ ΠΏΠ°ΡΠΎΠ»Ρ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π΄Π°ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π·Π°ΡΠΈΡΡ ΠΎΡ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅. Π§ΡΠΎΠ±Ρ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΌΠΎΠ³ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ, ΡΡΠ΅Π½ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ΅ΡΠΈ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ. ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ Π²ΡΡΠ΅ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ, ΠΎΠ½ΠΈ Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ.
4. ΠΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·Π΄Π΅Π».
4.1 Π‘ΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π‘Ρ Π΅ΠΌΠ° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ° Π°:
1. ΠΠ·ΠΌΠ΅ΡΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΠ‘ Windows ΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
2. Π‘ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅ΡΡΠ»ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ, Π° Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΠ‘ Windows ΠΈΠ·ΠΌΠ΅ΡΡΠ»ΠΎΡΡ ΡΠ΅ΠΊΡΠ½Π΄ΠΎΠΌΠ΅ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠΎΡΠ½ΠΎ.
ΠΠ»Π°Π²Π½Π°Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΡΠ° ΡΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ΅ΡΡΡ ΠΈ ΡΡΠ°Π²Π½ΠΈΡΡ ΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΠ‘ Windows XP. Π’Π΅ΡΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π½Π° ΡΠ°ΠΉΠ»Π°Ρ , ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Ρ ΠΊΠ°ΠΊΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΡΡ Windows ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΏΠΎ ΠΏΡΡΡ ΡΠ°Π·, Π·Π°ΡΠ΅ΠΌ Π±ΡΠ°Π»ΠΎΡΡ ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΈ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡΡ Π½Π΅ ΡΡΠΈΡΡΠ²Π°Π»ΠΎΡΡ, ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡ ΠΎΠ΄ΡΠ΅ΡΡΡ Π½Π° ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ ΡΠ°ΠΉΠ»Π°. ΠΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΈ Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ ΡΠ°ΠΉΠ»Π° (245.5 ΠΠ±) ΡΠΊΠΎΡΠΎΡΡΡ ΠΏΠ°Π΄Π°Π΅Ρ, ΠΊΠ°ΠΊ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΈ Ρ Windows, ΡΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ ΡΠ°Π±ΠΎΡΡ ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ°, Π° Π½Π΅ Ρ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡ.
Π’Π΅ΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΡΠΏΠ°Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌΡ ΡΡΠ΅Π΄ΡΡΠ²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Windows. ΠΡΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΎΠ±ΡΡΠ»Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ½ΠΊΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ , Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ Ρ ΠΆΠ΅ΡΡΠΊΠΈΠΌ Π΄ΠΈΡΠΊΠΎΠΌ.
Π‘Ρ Π΅ΠΌΠ° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ° Π±:
1. ΠΠ°ΠΌΠ΅ΡΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΡ, Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ°ΠΉΠ»Π° ΠΏΠΎ ΡΠ΅ΡΠΈ (Π±Π΅Π· ΡΠ°Π±ΠΎΡΡ Ρ ΠΆΠ΅ΡΡΠΊΠΈΠΌ Π΄ΠΈΡΠΊΠΎΠΌ) ΠΈ Π²ΡΠ΅ΠΌΡ, Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ°ΠΉΠ»Π° ΠΈ Π½Π° ΡΠ°Π±ΠΎΡΡ Ρ ΠΆΠ΅ΡΡΠΊΠΈΠΌ Π΄ΠΈΡΠΊΠΎΠΌ.
2. Π‘ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΈΡΠΊΠΎΠΌ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ Π΅ΡΠ΅ ΡΡΠ΄ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ. Π ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΡΠΌΠΌΠ°ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΠ‘ Windows ΡΠΆΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°ΠΆΠ΅Π½Π° Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅.
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΆΠ΅ΡΡΠΊΠΈΠΌ Π΄ΠΈΡΠΊΠΎΠΌ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠ°Π·Π½ΠΈΡΠ° Π² ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Windows (Π ΠΈΡ. 4.1) Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠΎΠΉ Ρ ΠΆΠ΅ΡΡΠΊΠΈΠΌ Π΄ΠΈΡΠΊΠΎΠΌ.
4.2 Π‘ΠΆΠ°ΡΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π‘Ρ Π΅ΠΌΠ° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°:
1. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ (Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ) ΡΠ·Π½Π°Π΅ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΆΠ°ΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
2. ΠΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΊΡΠ°Π½Π° ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ (ΡΠΈΡΠΈΠ½Π° * Π²ΡΡΠΎΡΠ°).
3. ΠΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΆΠ°ΡΠΎΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΠΠ΅ΡΠ΅Π΄ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΆΠΈΠΌΠ°Π΅ΡΡΡ. ΠΠ°ΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π²Π΅Π΄Ρ Π½Π° ΡΠΆΠ°ΡΠΈΠ΅ ΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ΠΌΡ, ΠΈ ΠΏΡΠΈ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΡΠΆΠ°ΡΠΈΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΡΡΡΠ΅ΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π΅ ΡΠΆΠΈΠΌΠ°Ρ. ΠΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΊΠ°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΆΠ°ΡΠΈΡ, ΠΎΠ±Π»Π°Π΄Π°ΡΡΠΈΠΉ Π»ΡΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΊΠΎΡΠΎΡΡΡ ΠΊ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΡΠΆΠ°ΡΠΈΡ.
Π‘ΡΠ΅ΠΏΠ΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° LZW ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΈ Π·Π°ΡΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΡΠ΅Π΄Π½ΡΠ»ΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ ΡΠΊΠ°Π·Π°Π½Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.