. . . . . . β . . . β . . β β -
...Π ΠΊΠΎΠΏΠΈΠ»ΠΊΡ ΠΠ³ΡΠΎΠΊΠ°
ΠΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Π°Π·Π±ΡΠΊΠΈ ΠΠΎΡΠ·Π΅ β ΡΡΠΎ SOS, ΡΡΠΎ, ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎ ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«Π‘ΠΏΠ°ΡΠΈΡΠ΅ ΠΠ°ΡΠΈ ΠΡΡΠΈΒ» (ΠΎΡ Π°Π½Π³Π». Save Our Souls). ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ Π²ΠΎΠ²ΡΠ΅ Π½Π΅ Π°Π±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΠ°, Π° ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ Π±ΡΠΊΠ², Π½ΠΎ ΠΎΠ½ΠΎ ΡΠ»ΡΠΆΠΈΡ Π²Π°ΠΆΠ½ΡΠΌ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ. ΠΡΠΎ ΡΠ»ΠΎΠ²ΠΎ ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΡΡΡ Π½Π΅ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ Π°Π·Π±ΡΠΊΠΈ ΠΠΎΡΠ·Π΅ β Π±Π΅Π· ΠΏΠ°ΡΠ·: . . . β β β . . .
ΠΠΎ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΌΠΈΠ΄Π»Π΅ΡΠ° Lighthouse. ΠΠ΄Π΅Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΠΊ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΠ΅Π»Π΅ΡΠΎΠ½Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π·Π±ΡΠΊΡ ΠΠΎΡΠ·Π΅ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠΏΡΡΠ΅ΠΊ ΠΌΠ°ΡΠΊΠ°. ΠΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ: Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅Π»Π΅ΡΠΎΠ½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ ΠΌΠ°ΡΠΊ, Π²Ρ ΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΌΠ°ΡΠΊ Π½Π° ΡΠ΅Π»Π΅ΡΠΎΠ½Π΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, Π° ΠΎΠ½ ΡΠΌΠΎΡΡΠΈΡ Π½Π° ΠΌΠ°ΡΠΊ Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΠ΅Π»Π΅ΡΠΎΠ½Π΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Π²Π»Π΅Π²ΠΎ ΠΈ Π²ΠΏΡΠ°Π²ΠΎ Π²Ρ ΠΏΠΎΡΡΠ»Π°Π΅ΡΠ΅ ΡΠΈΡΠ΅ ΠΈ ΡΠΎΡΠΊΠΈ ΡΠ΅ΡΠ΅Π· Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΡΡ ΡΠ΅ΡΡ, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΠ°ΡΠΊ Π½Π° ΡΠ΅Π»Π΅ΡΠΎΠ½Π΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΌΠΈΠ³Π°ΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ ΡΠΎΡΠΊΠΈ ΠΈ ΡΠΈΡΠ΅.
...Π‘ΠΎΠ²Π΅Ρ Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ
ΠΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ΠΌΠΈΠ΄Π»Π΅ΡΠ° Lighthouse ΠΌΠΎΠ³Π»Π° Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΊΠ»Π°Π²ΠΈΡΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΡΠ΅ΠΊ ΠΈ ΡΠΈΡΠ΅, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» Π±Ρ Π·Π°Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ Π½Π°ΠΆΠ°ΡΠΎΠΉ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΡ ΠΎΠ΄ΠΈΠ»ΠΎ Π±Ρ Π½Π° Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΡΠ΅Π»Π΅Π³ΡΠ°Ρ, Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Ρ Π±Ρ ΡΡΠ°Π» ΠΌΠ΅Π½Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΌ.
ΠΠΈΠ΄Π»Π΅Ρ Lighthouse β ΡΡΠΎ Π²ΡΡΠΎΠΊΠΎΡΠ΅Ρ Π½ΠΈΡΠ½Π°Ρ ΡΠΈΠΌΡΠ»ΡΡΠΈΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ ΡΠΎΡΠΌΡ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ. Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ΅Π½, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Β«ΠΊΠ»ΠΈΠ΅Π½Ρ β ΡΠ΅ΡΠ²Π΅ΡΒ» ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ.
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°
ΠΠΈΠ΄Π»Π΅Ρ Lighthouse ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Β«ΠΊΠ»ΠΈΠ΅Π½Ρ β ΡΠ΅ΡΠ²Π΅ΡΒ» ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΌΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°ΠΌΠΈ. Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΈΠ΄Π»Π΅ΡΠ°ΠΌΠΈ β Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ±ΠΌΠ΅Π½ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΌΠΈΠ΄Π»Π΅ΡΠ° Lighthouse ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Β«ΠΊΠ»ΠΈΠ΅Π½Ρ β ΡΠ΅ΡΠ²Π΅ΡΒ», Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΎΠ² ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. ΠΠΈΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΎΠΌ-ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΎΠΌ-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π² ΠΌΠΈΠ΄Π»Π΅ΡΠ΅ Lighthouse:
1. ΡΠ΅ΡΠ²Π΅Ρ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΈ ΠΆΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°;
2. ΡΠ΅Π»Π΅ΡΠΎΠ½-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΎΠΌ-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ;
3. ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ, ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ;
4. ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Π·Π°Π²Π΅ΡΡΠ°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅.
ΠΠ½ΡΠ΅ΡΠ΅Ρ Π² ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΌ ΠΌΠΈΠ΄Π»Π΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎ, ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ, ΠΈ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅Ρ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. Π§ΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ Π΄Π²ΠΎΠΉΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΌΠΈΠ΄Π»Π΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΡΡ ΡΠΎΠ»Ρ Π±ΡΠ΄Π΅Ρ ΠΈΠ³ΡΠ°ΡΡ Π΅Π³ΠΎ ΡΠ΅Π»Π΅ΡΠΎΠ½ β ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈΠ»ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π»Π΅ΡΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π»ΠΈΠ±ΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π»ΠΈΠ±ΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ½Π°Ρ, ΡΡΠΎ Π΄Π»Ρ ΠΌΠΈΠ΄Π»Π΅ΡΠ° Lighthouse Π΅ΡΡΡ Π΄Π²Π° ΡΠ΅ΠΆΠΈΠΌΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΊΠΎΠ΄ ΠΌΠΈΠ΄Π»Π΅ΡΠ° Π½Π° ΠΊΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΠΊΠΎΠ΄ ΡΠ΅ΡΠ²Π΅ΡΠ°.
...Π ΠΊΠΎΠΏΠΈΠ»ΠΊΡ ΠΠ³ΡΠΎΠΊΠ°
Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΈΠ³Ρ ΠΏΡΠΈΠΌΠ΅Ρ Lighthouse ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ Π½Π°ΡΡΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Β«ΠΊΠ»ΠΈΠ΅Π½Ρ β ΡΠ΅ΡΠ²Π΅ΡΒ», Π° ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ. Π Π½Π°ΡΡΠΎΡΡΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΈΠ³ΡΠ°Ρ , ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Β«ΠΊΠ»ΠΈΠ΅Π½Ρ β ΡΠ΅ΡΠ²Π΅ΡΒ», Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠ΅ Π½Π° ΡΠ΅ΡΠ΅Π²ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠΈΠ΄Π»Π΅ΡΡ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΠΈΠ΅ΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ, β ΠΊΠ»ΠΈΠ΅Π½ΡΡ, Π° ΡΠ΅ΡΠ²Π΅Ρ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ³ΡΠΎΠΉ. ΠΠΈΠ΄Π»Π΅Ρ Lighthouse ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Β«ΠΊΠ»ΠΈΠ΅Π½Ρ β ΡΠ΅ΡΠ²Π΅ΡΒ» ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΈΡΡ Ρ ΡΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ, ΡΡΠΎ ΠΎΠ΄Π½ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ (ΡΠ΅ΡΠ²Π΅Ρ) ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (ΠΊΠ»ΠΈΠ΅Π½ΡΠ°).
ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
ΠΠΈΠ΄Π»Π΅Ρ Lighthouse ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π΄Π²ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ β ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°. Π Π΅ΠΆΠΈΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΌΠΈΠ΄Π»Π΅ΡΠ° (Π²Ρ ΡΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅). ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π²Ρ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΡΠ΅ ΠΊ ΡΡΠΎΠΌΡ, Π²Π°ΠΆΠ½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΈΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΠ΅ΡΠ΅Π· Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅.
ΠΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΌΠΈΠ΄Π»Π΅ΡΠ° Lighthouse
ΠΠΎΠ΄ Β«ΠΊΠ»ΠΈΠ΅Π½Ρ β ΡΠ΅ΡΠ²Π΅ΡΒ» Π² ΠΌΠΈΠ΄Π»Π΅ΡΠ΅ Lighthouse Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Π³ΡΠ΅ ΠΏΠΎΠ½ΡΡΡ, Π΅ΡΠ»ΠΈ Π½Π°ΡΠ°ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅ LHServer, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΠ»Π°ΡΡ LHServer ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Runnable, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅:
public class LHServer implements Runnable {
ΠΡΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ»Π°ΡΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡΠΈΠΉ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΡΠΎΠΌΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ, ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ Ρ Ρ ΠΎΠ»ΡΡΠΎΠΌ ΠΌΠΈΠ΄Π»Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΌΠ°ΡΠΊ. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΠ° LHServer Π³ΠΎΠ²ΠΎΡΡΡ ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΡΡ :
private LHCanvas canvas;
private DatagramConnection dc;
private String address;
private Boolean connected;Π₯ΠΎΠ»ΡΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ° LHServer Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ canvas. ΠΠ°ΡΠ°Π³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ dc β ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΠΊΠ»Π°ΡΡΠ° DatagramConnection. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ address Ρ ΡΠ°Π½ΠΈΡ Π°Π΄ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΡΠΎΠ±Ρ ΠΏΠ°ΠΊΠ΅ΡΡ Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±ΡΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ. Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ connected ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° LHServer ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ β ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° LHCanvas, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠ΄ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΉ:
public LHServer(LHCanvas c) {
canvas = c;
connected = false;
}ΠΠ΅ΡΠΎΠ΄ start() ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡ, ΠΎΠ½ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΠΎΡΠΎΠΊ:
public void start() {
Thread t = new Thread(this);
t.start();
}ΠΠ΅ΡΠΎΠ΄ run() β ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° (Π»ΠΈΡΡΠΈΠ½Π³ 14.1). ΠΠΈΡΡΠΈΠ½Π³ 14.1. ΠΠ΅ΡΠΎΠ΄ run() ΠΊΠ»Π°ΡΡΠ° LHServer ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠ½ΡΡΡΠ΅ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
public void run() {
try {
// ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ
canvas.setStatus("Waiting for peer client..."); //ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΡΠ°ΡΡΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
dc = null;
while (dc == null)
dc = (DatagramConnection)Connector.open("datagram://:5555"); //ΠΠΎΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ
while (true) {
// ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ½ΡΡΡ ΠΏΠ°ΠΊΠ΅Ρ Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΡ
Datagram dg = dc.newDatagram(32); //Π Π°Π·ΠΌΠ΅Ρ Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΡ (32 Π±Π°ΠΉΡΠ°) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ, ΡΡΠΎΠ±Ρ Π²ΠΌΠ΅ΡΡΠΈΡΡ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΠΈΠ³ΡΠ΅ Lighthouse ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΎΡΠ΅Π½Ρ Π²Π΅Π»ΠΈΠΊΠΈ
dc.receive(dg);
address = dg.getAddress();
// ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π°Π½Π½ΡΠ΅
if (dg.getLength() > 0) {
String data = new String(dg.getData(), 0, dg.getLength());
if (data.equals("Client")) { //Π ΠΎΡΠ²Π΅Ρ Π½Π° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ²Π΅Ρ
// ΠΎΠΏΠΎΠ²Π΅ΡΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠ± ΡΠ΄Π°ΡΠ½ΠΎΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ
canvas.setStatus("Connected to peer client.");
connected = true;
// ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΠΏΡΠΈΠ½ΡΡΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
sendMessage("Server");
}
else {
// ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅
canvas.receiveMessage(data); //Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π·Π½Π°ΠΊΠΈ Π°Π·Π±ΡΠΊΠΈ ΠΠΎΡΠ·Π΅, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Ρ ΠΎΠ»ΡΡΡ
}
}
}
}
catch (IOException ioe) {
System.err.println("The network port is already taken.");
}
catch (Exception e) {
}
}ΠΠ΅ΡΠΎΠ΄ run() Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° setStatus() ΠΊΠ»Π°ΡΡΠ° LHCanvas, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π² ΡΡΡΠΎΠΊΡ ΡΡΠ°ΡΡΡΠ° Ρ ΠΎΠ»ΡΡΠ° Β«Waiting for peer clientβ¦Β» β ΡΠ΅ΠΆΠΈΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΡ, ΡΡΠΎ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΡΠ°ΡΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½ Π½Π° Ρ ΠΎΠ»ΡΡ, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ run(), ΡΠΎΠ·Π΄Π°ΡΡΠΈΠΉ Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. ΠΠΎΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΡΠ° (5555) β ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΡ Π΄Π»Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ β Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ, ΠΌΠ΅ΡΠΎΠ΄ run() Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΏΡΠΈΠ½ΡΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Datagram, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌ. ΠΠ΄ΡΠ΅Ρ Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π½Π° ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠ²Π΅Ρ.
ΠΡΠ»ΠΈ Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎ Π±Π°ΠΉΡΡ Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² ΡΡΡΠΎΠΊΡ. ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ, ΡΠ°Π²Π½Π° Π»ΠΈ ΡΡΠ° ΡΡΡΠΎΠΊΠ° Β«ClientΒ», ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠ΅ΠΌΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΡΠ»ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ»ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΠΎ ΡΡΠ°ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Β«ServerΒ», ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΠ΅ΡΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ.
ΠΠ°ΡΠ°Π³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠΎΠΊΡ Β«ClientΒ» ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π²ΠΏΠ΅ΡΠ²ΡΠ΅. ΠΠ°Π»Π΅Π΅ Π±ΡΠ΄ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠ²Π° Β«DotΒ» (ΡΠΎΡΠΊΠ°) ΠΈΠ»ΠΈ Β«DashΒ» (ΡΠΈΡΠ΅), Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΠΊΠ»Π°ΡΡ LHCanvas, Π³Π΄Π΅ ΠΎΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ receiveMessage(). ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ Ρ ΠΎΠ»ΡΡΠ° ΠΌΠΈΠ΄Π»Π΅ΡΠ° Lighthouse.
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ° LHServer β ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ sendMessage(), ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 14.2. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ.
ΠΠΈΡΡΠΈΠ½Π³ 14.2. ΠΠ΅ΡΠΎΠ΄ sendMessage() ΠΊΠ»Π°ΡΡΠ° LHServer ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ°ΠΊΠ΅Ρ Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΡpublic void sendMessage(String message) {
// ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
try {
// ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡΠΎΠ²
byte[] bytes = message.getBytes(); //Π‘ΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΎ Π² ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡΠΎΠ²
// ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
Datagram dg = null; //Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½ΡΡ Π² Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡ
dg = dc.newDatagram(bytes, bytes.length, address);
dc.send(dg);
}
catch (Exception e) {
}
}Π ΡΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² ΠΌΠ°ΡΡΠΈΠ² Π±Π°ΠΉΡΠΎΠ², Π° Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΊΠ°ΠΊ Π΄Π°ΡΠ°Π³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π°Π΄ΡΠ΅Ρ, ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠΉ ΡΠ°Π½Π΅Π΅ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ run(), ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Datagram ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΡΠΎΡ Π°Π΄ΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΎΠ·ΠΆΠ΅, ΡΡΠΎΡ Π°Π΄ΡΠ΅Ρ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½ ΠΏΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΡ. ΠΡΡΠ³Π°Ρ ΡΠ°ΡΡΡ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠΈΠ΄Π»Π΅ΡΠ° Lighthouse β ΡΡΠΎ ΠΊΠ»Π°ΡΡ LHClient, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΠΊΠ»Π°ΡΡ LHServer. Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ LHServer, ΠΊΠ»Π°ΡΡ LHClient ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Runnable: