เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎเชจเชพ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เช…เชจเซ‡ เชธเช‚เช—เช เชจเชพเชคเซเชฎเช• เช…เชญเชฟเช—เชฎเซ‹เชจเซ€ เชŸเซ€เช•เชพ. เชญเชพเช— 1, เชคเช•เชจเซ€เช•เซ€: เชถเชฐเซ‚เช†เชคเชฅเซ€ เช•เซเชฒเชพเชฏเชจเซเชŸ เชฒเช–เชตเชพเชจเซ‹ เช…เชจเซเชญเชต - TL, MT

เชคเชพเชœเซ‡เชคเชฐเชฎเชพเช‚, เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เช•เซ‡เชŸเชฒเซเช‚ เชธเชพเชฐเซเช‚ เช›เซ‡, เชกเซเชฐเซ‹เชต เชญเชพเชˆเช“ เชจเซ‡เชŸเชตเชฐเซเช• เชธเชฟเชธเซเชŸเชฎ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‡เชŸเชฒเชพ เชคเซ‡เชœเชธเซเชตเซ€ เช…เชจเซ‡ เช…เชจเซเชญเชตเซ€ เช›เซ‡ เชตเช—เซ‡เชฐเซ‡ เชตเชฟเชถเซ‡เชจเซ€ เชชเซ‹เชธเซเชŸเซเชธ เชตเชงเซ เชตเช–เชค เชนเซ‡เชฌเซเชฐเซ‡ เชชเชฐ เชฆเซ‡เช–เชพเชตเชพ เชฒเชพเช—เซ€ เช›เซ‡. เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เชฌเชนเซ เช“เช›เชพ เชฒเซ‹เช•เซ‹ เช–เชฐเซ‡เช–เชฐ เชคเช•เชจเซ€เช•เซ€ เช‰เชชเช•เชฐเชฃเชฎเชพเช‚ เชกเซ‚เชฌเซ€ เช—เชฏเชพ เช›เซ‡ - เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡, เชคเซ‡เช“ JSON เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชเช•เชฆเชฎ เชธเชฐเชณ (เช…เชจเซ‡ MTProto เช•เชฐเชคเชพเช‚ เชคเชฆเซเชฆเชจ เช…เชฒเช—) Bot API เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡, เช…เชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชซเช•เซเชค เชธเซเชตเซ€เช•เชพเชฐเซ‡ เช›เซ‡. เชตเชฟเชถเซเชตเชพเชธ เชชเชฐ เชคเชฎเชพเชฎ เชตเช–เชพเชฃ เช…เชจเซ‡ เชชเซ€เช†เชฐ เชœเซ‡ เชฎเซ‡เชธเซ‡เชจเซเชœเชฐเชจเซ€ เช†เชธเชชเชพเชธ เชซเชฐเซ‡ เช›เซ‡. เชฒเช—เชญเช— เชฆเซ‹เชข เชตเชฐเซเชท เชชเชนเซ‡เชฒเชพเช‚, เชเชถเซ‡เชฒเซ‹เชจ เชเชจเชœเซ€เช“ เชตเซ‡เชธเชฟเชฒเซ€เชฎเชพเช‚ เชฎเชพเชฐเชพ เชธเชพเชฅเซ€เชฆเชพเชฐเซ‡ (เช•เชฎเชจเชธเซ€เชฌเซ‡, เชกเซเชฐเชพเชซเซเชŸเชจเซ€ เชธเชพเชฅเซ‡ เชนเซ‡เชฌเซเชฐเซ‡ เชชเชฐเชจเซเช‚ เชคเซ‡เชฎเชจเซเช‚ เชเช•เชพเช‰เชจเซเชŸ เชญเซ‚เช‚เชธเซ€ เชจเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚) เชชเชฐเซเชฒเชฎเชพเช‚ เชถเชฐเซ‚เช†เชคเชฅเซ€ เชชเซ‹เชคเชพเชจเซ‹ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เช•เซเชฒเชพเชฏเช‚เชŸ เชฒเช–เชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซเชฏเซเช‚, เช…เชจเซ‡ เชชเช›เซ€เชฅเซ€ เช† เชฐเซ‡เช–เชพเช“เชจเชพ เชฒเซ‡เช–เช• เชœเซ‹เชกเชพเชฏเชพ. เชถเชพ เชฎเชพเชŸเซ‡ เชชเชฐเซเชฒ, เช•เซ‡เชŸเชฒเชพเช• เชคเชฐเชค เชœ เชชเซ‚เช›เชถเซ‡? เช•เชพเชฐเชฃ เช•เซ‡ เช†เชตเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธ เช…เชจเซเชฏ เชญเชพเชทเชพเช“เชฎเชพเช‚ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เช›เซ‡. เชนเช•เซ€เช•เชคเชฎเชพเช‚, เช† เชฎเซเชฆเซเชฆเซ‹ เชจเชฅเซ€, เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เช…เชจเซเชฏ เชญเชพเชทเชพ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ เชœเซเชฏเชพเช‚ เช•เซ‹เชˆ เชจ เชนเซ‹เชฏ. เชคเซˆเชฏเชพเชฐ เชชเซเชธเซเชคเช•เชพเชฒเชฏ, เช…เชจเซ‡ เชคเซ‡ เชฎเซเชœเชฌ เชฒเซ‡เช–เช•เซ‡ เชฌเชงเซ€ เชฐเซ€เชคเซ‡ เชœเชตเซเช‚ เชœเซ‹เชˆเช เชถเชฐเซ‚เช†เชคเชฅเซ€. เชตเชงเซเชฎเชพเช‚, เช•เซเชฐเชฟเชชเซเชŸเซ‹เช—เซเชฐเชพเชซเซ€ เช เชตเชฟเชถเซเชตเชพเชธเชจเซ€ เชฌเชพเชฌเชค เช›เซ‡, เชชเชฐเช‚เชคเซ เชšเช•เชพเชธเซ‹. เชธเซเชฐเช•เซเชทเชพเชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฐเชพเช–เซ€เชจเซ‡ เช‰เชคเซเชชเชพเชฆเชจ เชธเชพเชฅเซ‡, เชคเชฎเซ‡ เชจเชฟเชฐเซเชฎเชพเชคเชพ เชชเชพเชธเซ‡เชฅเซ€ เชคเซˆเชฏเชพเชฐ เช•เชฐเซ‡เชฒเซ€ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ€ เชถเช•เชคเชพ เชจเชฅเซ€ เช…เชจเซ‡ เชคเซ‡เชจเชพ เชชเชฐ เช†เช‚เชงเชณเซ‹ เชตเชฟเชถเซเชตเชพเชธ เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€ (เชœเซ‹ เช•เซ‡, เช† เชฌเซ€เชœเชพ เชญเชพเช— เชฎเชพเชŸเซ‡เชจเซ‹ เชตเชฟเชทเชฏ เช›เซ‡). เช† เช•เซเชทเชฃเซ‡, เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ "เชธเชฐเซ‡เชฐเชพเชถ" เชธเซเชคเชฐเซ‡ เช–เซ‚เชฌ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡ (เชคเชฎเชจเซ‡ เช•เซ‹เชˆเชชเชฃ API เชตเชฟเชจเช‚เชคเซ€เช“ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡).

เชœเซ‹ เช•เซ‡, เชชเซ‹เชธเซเชŸเซเชธเชจเซ€ เช† เชถเซเชฐเซ‡เชฃเซ€เชฎเชพเช‚ เชตเชงเซ เช•เซเชฐเชฟเชชเซเชŸเซ‹เช—เซเชฐเชพเชซเซ€ เช…เชฅเชตเชพ เช—เชฃเชฟเชค เชนเชถเซ‡ เชจเชนเซ€เช‚. เชชเชฐเช‚เชคเซ เช…เชจเซเชฏ เช˜เชฃเซ€ เชŸเซ‡เช•เชจเชฟเช•เชฒ เชตเชฟเช—เชคเซ‹ เช…เชจเซ‡ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐเชฒ เช•เซเชฐเซ‰เชš เชนเชถเซ‡ (เชœเซ‡เช“ เชถเชฐเซ‚เช†เชคเชฅเซ€ เชฒเช–เชถเซ‡ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เช•เซ‹เชˆเชชเชฃ เชญเชพเชทเชพเชฎเชพเช‚ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชถเซ‡ เชคเซ‡เชฎเชจเชพ เชฎเชพเชŸเซ‡ เชชเชฃ เช‰เชชเชฏเซ‹เช—เซ€). เชคเซ‡เชฅเซ€, เชฎเซเช–เซเชฏ เชงเซเชฏเซ‡เชฏ เช•เซเชฒเชพเชฏเช‚เชŸเชจเซ‡ เชถเชฐเซ‚เช†เชคเชฅเซ€ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเชตเชพเชจเซ‹ เชนเชคเซ‹ เชธเชคเซเชคเชพเชตเชพเชฐ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เช…เชจเซเชธเชพเชฐ. เชเชŸเชฒเซ‡ เช•เซ‡, เชšเชพเชฒเซ‹ เชฎเชพเชจเซ€ เชฒเชˆเช เช•เซ‡ เชธเชคเซเชคเชพเชตเชพเชฐ เช•เซเชฒเชพเชฏเช‚เชŸเชจเซ‹ เชธเซเชฐเซ‹เชค เช•เซ‹เชก เชฌเช‚เชง เช›เซ‡ (เชซเชฐเซ€เชฅเซ€, เชฌเซ€เชœเชพ เชญเชพเช—เชฎเชพเช‚ เช†เชชเชฃเซ‡ เช† เชธเชคเซเชฏ เช›เซ‡ เชคเซ‡ เชนเช•เซ€เช•เชคเชจเชพ เชตเชฟเชทเชฏเชจเซ‡ เชตเชงเซ เชตเชฟเช—เชคเชตเชพเชฐ เช†เชตเชฐเซ€เชถเซเช‚. เชคเซ‡ เชฅเชพเชฏ เช›เซ‡ เชคเซ‡เชฅเซ€), เชชเชฐเช‚เชคเซ, เชœเซ‚เชจเชพ เชฆเชฟเชตเชธเซ‹เชจเซ€ เชœเซ‡เชฎ, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช†เชฐเชเชซเชธเซ€ เชœเซ‡เชตเซเช‚ เชงเซ‹เชฐเชฃ เช›เซ‡ - เชถเซเช‚ เชเช•เชฒเชพ เชธเซเชชเชทเซเชŸเซ€เช•เชฐเชฃ เช…เชจเซเชธเชพเชฐ เช•เซเชฒเชพเชฏเช‚เชŸ เชฒเช–เชตเชพเชจเซเช‚ เชถเช•เซเชฏ เช›เซ‡, เชธเซเชคเซเชฐเซ‹เชค เช•เซ‹เชกเชจเซ‡ "เชœเซ‹เชฏเชพ เชตเชฟเชจเชพ", เชคเซ‡ เชธเชคเซเชคเชพเชตเชพเชฐ เชนเซ‹เชฏ (เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชกเซ‡เชธเซเช•เชŸเซ‹เชช, เชฎเซ‹เชฌเชพเช‡เชฒ), เช…เชฅเชตเชพ เชฌเชฟเชจเชธเชคเซเชคเชพเชตเชพเชฐ เชŸเซ‡เชฒเชฟเชฅเซ‹เชจ?

เช‘เช—เซเชฒเซ‡เชตเชฒเซ‡เชจเชฟเช:

เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ... เชคเซ‡ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เช›เซ‡, เชฌเชฐเชพเชฌเชฐ? เชถเซ เชคเซ‡ เชธเชพเชšเซ เช›เซ‡?..

เช—เชฏเชพ เช‰เชจเชพเชณเชพเชฎเชพเช‚ เช† เชฒเซ‡เช– เชฎเชพเชŸเซ‡เชจเซ€ เชจเซ‹เช‚เชงเซ‹เชจเชพ เชŸเซเช•เชกเชพเช“ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เชฅเชฏเซเช‚. เชธเชคเซเชคเชพเชตเชพเชฐ เชตเซ‡เชฌเชธเชพเช‡เชŸ เชชเชฐ เช† เชฌเชงเชพ เชธเชฎเชฏ https://core.telegram.org เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชฒเซ‡เชฏเชฐ 23 เชฎเซเชœเชฌ เชนเชคเซเช‚, เชเชŸเชฒเซ‡ เช•เซ‡. 2014 เชฎเชพเช‚ เช•เซเชฏเชพเช‚เช• เช…เชŸเช•เซ€ เช—เชฏเชพ (เชฏเชพเชฆ เชฐเชพเช–เซ‹, เชคเซ‡ เชธเชฎเชฏเซ‡ เชšเซ‡เชจเชฒเซ‹ เชชเชฃ เชจ เชนเชคเซ€?). เช…เชฒเชฌเชคเซเชค, เชธเชฟเชฆเซเชงเชพเช‚เชคเชฎเชพเช‚, เช†เชจเชพเชฅเซ€ เช…เชฎเชจเซ‡ 2014 เชฎเชพเช‚ เชคเซ‡ เชธเชฎเชฏเซ‡ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชธเชพเชฅเซ‡ เช•เซเชฒเชพเชฏเช‚เชŸเชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช. เชชเชฐเช‚เชคเซ เช† เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚ เชชเชฃ, เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ, เชชเซเชฐเชฅเชฎ, เช…เชชเซ‚เชฐเซเชฃ, เช…เชจเซ‡ เชฌเซ€เชœเซเช‚, เชธเซเชฅเชพเชจเซ‹ เชชเชฐ เชคเซ‡ เชชเซ‹เชคเซ‡ เชตเชฟเชฐเซ‹เชงเชพเชญเชพเชธเซ€ เชนเชคเซเช‚. เชฎเชพเชคเซเชฐ เชเช• เชฎเชนเชฟเชจเชพ เชชเชนเซ‡เชฒเชพ, เชธเชชเซเชŸเซ‡เชฎเซเชฌเชฐ 2019 เชฎเชพเช‚, เชคเซ‡ เชนเชคเซเช‚ เช…เช•เชธเซเชฎเชพเชคเซ‡ เชคเซ‡ เชœเชพเชฃเชตเชพ เชฎเชณเซเชฏเซเช‚ เช•เซ‡ เชธเชพเช‡เชŸ เชชเชฐ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃเชจเซเช‚ เชเช• เชฎเซ‹เชŸเซเช‚ เช…เชชเชกเซ‡เชŸ เช›เซ‡, เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชคเชพเชœเซ‡เชคเชฐเชจเชพ เชธเซเชคเชฐ 105 เชฎเชพเชŸเซ‡, เชเช• เชจเซ‹เช‚เชง เชธเชพเชฅเซ‡ เช•เซ‡ เชนเชตเซ‡ เชฌเชงเซเช‚ เชซเชฐเซ€เชฅเซ€ เชตเชพเช‚เชšเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช–เชฐเซ‡เช–เชฐ, เช˜เชฃเชพ เชฒเซ‡เช–เซ‹ เชธเซเชงเชพเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ, เชชเชฐเช‚เชคเซ เช˜เชฃเชพ เชฏเชฅเชพเชตเชค เชฐเชนเซเชฏเชพ เชนเชคเชพ. เชคเซ‡เชฅเซ€, เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชตเชฟเชถเซ‡ เชจเซ€เชšเซ‡เชจเซ€ เชŸเซ€เช•เชพ เชตเชพเช‚เชšเชคเซ€ เชตเช–เชคเซ‡, เชคเชฎเชพเชฐเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฐเชพเช–เชตเซเช‚ เชœเซ‹เชˆเช เช•เซ‡ เช†เชฎเชพเช‚เชจเซ€ เช•เซ‡เชŸเชฒเซ€เช• เชฌเชพเชฌเชคเซ‹ เชนเชตเซ‡ เชธเช‚เชฌเช‚เชงเชฟเชค เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช•เซ‡เชŸเชฒเซ€เช• เชนเชœเซ€ เชชเชฃ เชคเชฆเซเชฆเชจ เช›เซ‡. เช›เซ‡เชตเชŸเซ‡, เช†เชงเซเชจเชฟเช• เชตเชฟเชถเซเชตเชฎเชพเช‚ 5 เชตเชฐเซเชท เช เชฎเชพเชคเซเชฐ เชฒเชพเช‚เชฌเซ‹ เชธเชฎเชฏ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช–เซ‚เชฌ เชœ เช˜เชฃเซ‹. เชคเซ‡ เชธเชฎเชฏเชฅเซ€ (เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชœเซ‹ เชคเชฎเซ‡ เชคเซเชฏเชพเชฐเชฅเซ€ เช•เชพเชขเซ€ เชจเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเซ€ เช…เชจเซ‡ เชชเซเชจเชฐเซเชœเซ€เชตเชฟเชค เชœเซ€เช“เชšเซ‡เชŸ เชธเชพเช‡เชŸเซเชธเชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชจ เชฒเซ‹ เชคเซ‹), เชธเซเช•เซ€เชฎเชฎเชพเช‚ API เชชเชฆเซเชงเชคเชฟเช“เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชธเซ‹เชฅเซ€ เชตเชงเซ€เชจเซ‡ เช…เชขเซ€เชธเซ‹เชฅเซ€ เชตเชงเซ เชฅเชˆ เช—เชˆ เช›เซ‡!

เชฏเซเชตเชพ เชฒเซ‡เช–เช• เชคเชฐเซ€เช•เซ‡ เช•เซเชฏเชพเช‚เชฅเซ€ เชถเชฐเซ‚เช†เชค เช•เชฐเชตเซ€?

เชคเชฎเซ‡ เชถเชฐเซ‚เช†เชคเชฅเซ€ เชฒเช–เซ‹ เช›เซ‹ เช•เซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ เช›เซ‹ เชคเซ‡เชจเชพเชฅเซ€ เช•เซ‹เชˆ เชซเชฐเช• เชชเชกเชคเซ‹ เชจเชฅเซ€, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเซˆเชฏเชพเชฐ เชชเซเชธเซเชคเช•เชพเชฒเชฏเซ‹ เชชเชพเชฏเชฅเซ‹เชจ เชฎเชพเชŸเซ‡ เชŸเซ‡เชฒเชฟเชฅเซ‹เชจ เช…เชฅเชตเชพ PHP เชฎเชพเชŸเซ‡ เชฎเซ‡เชกเชฒเชพเช‡เชจ, เช•เซ‹เชˆเชชเชฃ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชคเชฎเชพเชฐเซ‡ เชชเซเชฐเชฅเชฎ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡ เชคเชฎเชพเชฐเซ€ เช…เชฐเชœเซ€ เชฐเชœเซ€เชธเซเชŸเชฐ เช•เชฐเซ‹ - เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชฎเซ‡เชณเชตเซ‹ api_id ะธ api_hash (เชœเซ‡เช“เช VKontakte API เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเซเชฏเซเช‚ เช›เซ‡ เชคเซ‡เช“ เชคเชฐเชค เชœ เชธเชฎเชœเซ€ เชœเชพเชฏ เช›เซ‡) เชœเซ‡เชจเชพ เชฆเซเชตเชพเชฐเชพ เชธเชฐเซเชตเชฐ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เช“เชณเช–เชถเซ‡. เช† เช›เซ‡ เชคเซ‡ เช•เชพเชจเซ‚เชจเซ€ เช•เชพเชฐเชฃเซ‹เชธเชฐ เช•เชฐเซ‹, เชชเชฐเช‚เชคเซ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ เชฒเซ‡เช–เช•เซ‹ เชคเซ‡เชจเซ‡ เชฌเซ€เชœเชพ เชญเชพเช—เชฎเชพเช‚ เช•เซ‡เชฎ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€ เชคเซ‡ เชตเชฟเชถเซ‡ เช…เชฎเซ‡ เชตเชงเซ เชตเชพเชค เช•เชฐเซ€เชถเซเช‚. เชคเชฎเซ‡ เชชเชฐเซ€เช•เซเชทเชฃ เชฎเซ‚เชฒเซเชฏเซ‹เชฅเซ€ เชธเช‚เชคเซเชทเซเชŸ เชนเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹, เชœเซ‹ เช•เซ‡ เชคเซ‡ เช–เซ‚เชฌ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เช›เซ‡ - เชนเช•เซ€เช•เชค เช เช›เซ‡ เช•เซ‡ เชนเชตเซ‡ เชคเชฎเซ‡ เชจเซ‹เช‚เชงเชฃเซ€ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชฎเชพเชคเซเชฐ เชเช• เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ, เชคเซ‡เชฅเซ€ เชคเซ‡เชฎเชพเช‚ เช‰เชคเชพเชตเชณ เช•เชฐเชถเซ‹ เชจเชนเซ€เช‚.

เชนเชตเซ‡, เชคเช•เชจเซ€เช•เซ€ เชฆเซƒเชทเซเชŸเชฟเช•เซ‹เชฃเชฅเซ€, เช…เชฎเชจเซ‡ เช เชนเช•เซ€เช•เชคเชฎเชพเช‚ เชฐเชธ เชนเซ‹เชตเซ‹ เชœเซ‹เชˆเช เช•เซ‡ เชจเซ‹เช‚เชงเชฃเซ€ เชชเช›เซ€ เช…เชฎเชจเซ‡ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชคเชฐเชซเชฅเซ€ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ, เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชตเช—เซ‡เชฐเซ‡เชจเชพ เช…เชชเชกเซ‡เชŸเซเชธ เชตเชฟเชถเซ‡ เชธเซ‚เชšเชจเชพเช“ เชชเซเชฐเชพเชชเซเชค เชฅเชตเซ€ เชœเซ‹เชˆเช. เชเชŸเชฒเซ‡ เช•เซ‡, เช•เซ‹เชˆ เชเชตเซเช‚ เชฎเชพเชจเซ€ เชถเช•เซ‡ เช›เซ‡ เช•เซ‡ เชกเซ‹เช•เซเชธ เชธเชพเชฅเซ‡เชจเซ€ เชธเชพเช‡เชŸ เช–เชพเชฒเซ€ เช›เซ‹เชกเซ€ เชฆเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ เช…เชจเซ‡ เชคเซ‡ เชฒเซ‹เช•เซ‹ เชธเชพเชฅเซ‡ เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เซเชฏเซเช‚ เชนเชคเซเช‚ เชœเซ‡เชฎเชฃเซ‡ เช—เซเชฐเชพเชนเช•เซ‹ เชฌเชจเชพเชตเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซเชฏเซเช‚ เชนเชคเซเช‚, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชธเชฐเชณ เช›เซ‡. เชชเชฃ เชจเชพ, เชเชตเซเช‚ เช•เช‚เชˆ เชœเซ‹เชตเชพ เชฎเชณเซเชฏเซเช‚ เชจเชนเซ‹เชคเซเช‚, เช•เซ‹เชˆ เชฎเชพเชนเชฟเชคเซ€ เช†เชตเซ€ เชจเชนเซ‹เชคเซ€.

เช…เชจเซ‡ เชœเซ‹ เชคเชฎเซ‡ เชถเชฐเซ‚เช†เชคเชฅเซ€ เชฒเช–เซ‹ เช›เซ‹, เชคเซ‹ เชชเช›เซ€ เชชเซเชฐเชพเชชเซเชค เชชเชฐเชฟเชฎเชพเชฃเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เช–เชฐเซ‡เช–เชฐ เชนเชœเซ€ เช˜เชฃเซ‹ เชฆเซ‚เชฐ เช›เซ‡. เชœเซ‹เช•เซ‡ https://core.telegram.org/ เช…เชจเซ‡ เช—เซ‡เชŸเซ€เช‚เช— เชธเซเชŸเชพเชฐเซเชŸเชฎเชพเช‚ เชคเซ‡เชฎเชจเชพ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ‡ เช›เซ‡ เชธเซŒ เชชเซเชฐเชฅเชฎ, เชนเช•เซ€เช•เชคเชฎเชพเช‚, เชคเชฎเชพเชฐเซ‡ เชชเซเชฐเชฅเชฎ เช…เชฎเชฒ เช•เชฐเชตเซ‹ เชชเชกเชถเซ‡ MTProto เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ - เชชเชฐเช‚เชคเซ เชœเซ‹ เชคเชฎเซ‡ เชฎเชพเชจเชคเชพ เชนเซ‹เชต OSI เชฎเซ‹เชกเซ‡เชฒ เช…เชจเซเชธเชพเชฐ เชฒเซ‡เช†เช‰เชŸ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเชพ เชธเชพเชฎเชพเชจเซเชฏ เชตเชฐเซเชฃเชจ เชฎเชพเชŸเซ‡ เชชเซƒเชทเซเช เชจเชพ เช…เช‚เชคเซ‡, เชชเช›เซ€ เชคเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชจเชฟเชฐเชฐเซเชฅเช• เช›เซ‡.

เชตเชพเชธเซเชคเชตเชฎเชพเช‚, เชเชฎเชŸเซ€เชชเซเชฐเซ‹เชŸเซ‹ เชชเชนเซ‡เชฒเชพเช‚ เช…เชจเซ‡ เชชเช›เซ€ เชฌเช‚เชจเซ‡, เชเช•เชธเชพเชฅเซ‡ เช…เชจเซ‡เช• เชธเซเชคเชฐเซ‹ เชชเชฐ (เช“เชเชธ เช•เชฐเซเชจเชฒเชฎเชพเช‚ เช•เชพเชฎ เช•เชฐเชคเชพ เชตเชฟเชฆเซ‡เชถเซ€ เชจเซ‡เชŸเชตเชฐเซเช•เชฐเซเชธ เช•เชนเซ‡ เช›เซ‡ เช•เซ‡, เชธเซเชคเชฐเชจเซเช‚ เช‰เชฒเซเชฒเช‚เช˜เชจ), เชเช• เชฎเซ‹เชŸเซ‹, เชชเซ€เชกเชพเชฆเชพเชฏเช• เช…เชจเซ‡ เชญเชฏเช‚เช•เชฐ เชตเชฟเชทเชฏ เช†เชตเซ€ เชœเชถเซ‡...

เชฆเซเชตเชฟเชธเช‚เช—เซ€ เช•เซเชฐเชฎเชพเช‚เช•เชจ: TL (เชŸเชพเชˆเชช เชฒเซ‡เช‚เช—เซเชตเซ‡เชœ) เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชธเซเช•เซ€เชฎ, เช…เชจเซ‡ เชธเซเชคเชฐเซ‹, เช…เชจเซ‡ เช…เชจเซเชฏ เช˜เชฃเชพ เชกเชฐเชพเชฎเชฃเชพ เชถเชฌเซเชฆเซ‹

เช† เชตเชฟเชทเชฏ, เชนเช•เซ€เช•เชคเชฎเชพเช‚, เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎเชจเซ€ เชธเชฎเชธเซเชฏเชพเช“เชจเซ€ เชšเชพเชตเซ€ เช›เซ‡. เช…เชจเซ‡ เชœเซ‹ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชธเชฎเชœเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชคเซเชจ เช•เชฐเชถเซ‹ เชคเซ‹ เช˜เชฃเชพ เชญเชฏเช‚เช•เชฐ เชถเชฌเซเชฆเซ‹ เชนเชถเซ‡.

เชคเซ‹, เช…เชนเซ€เช‚ เช†เช•เซƒเชคเชฟ เช›เซ‡. เชœเซ‹ เช† เชถเชฌเซเชฆ เชคเชฎเชพเชฐเชพ เชฎเช—เชœเชฎเชพเช‚ เช†เชตเซ‡ เชคเซ‹ เช•เชนเซ‹, JSON เชธเซเช•เซ€เชฎเชพ, เชคเชฎเซ‡ เชธเชพเชšเซเช‚ เชตเชฟเชšเชพเชฐเซเชฏเซเช‚. เชงเซเชฏเซ‡เชฏ เช เชœ เช›เซ‡: เชชเซเชฐเชธเชพเชฐเชฟเชค เชกเซ‡เชŸเชพเชจเชพ เชธเช‚เชญเชตเชฟเชค เชธเชฎเซ‚เชนเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เชญเชพเชทเชพ. เช† เชคเซ‡ เช›เซ‡ เชœเซเชฏเชพเช‚ เชธเชฎเชพเชจเชคเชพ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡. เชœเซ‹ เชชเซƒเชทเซเช  เชชเชฐเชฅเซ€ MTProto เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ, เช…เชฅเชตเชพ เชธเชคเซเชคเชพเชตเชพเชฐ เช•เซเชฒเชพเชฏเช‚เชŸเชจเชพ เชธเซเชคเซเชฐเซ‹เชค เชตเซƒเช•เซเชทเชฎเชพเช‚เชฅเซ€, เช…เชฎเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เชธเซเช•เซ€เชฎเชพ เช–เซ‹เชฒเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€เชถเซเช‚, เช…เชฎเซ‡ เช•เช‚เชˆเช• เช†เชจเชพ เชœเซ‡เชตเซเช‚ เชœเซ‹เชˆเชถเซเช‚:

int ? = Int;
long ? = Long;
double ? = Double;
string ? = String;

vector#1cb5c415 {t:Type} # [ t ] = Vector t;

rpc_error#2144ca19 error_code:int error_message:string = RpcError;

rpc_answer_unknown#5e2ad36e = RpcDropAnswer;
rpc_answer_dropped_running#cd78e586 = RpcDropAnswer;
rpc_answer_dropped#a43ad8b7 msg_id:long seq_no:int bytes:int = RpcDropAnswer;

msg_container#73f1f8dc messages:vector<%Message> = MessageContainer;

---functions---

set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:bytes = Set_client_DH_params_answer;

ping#7abe77ec ping_id:long = Pong;
ping_delay_disconnect#f3427b8c ping_id:long disconnect_delay:int = Pong;

invokeAfterMsg#cb9f372d msg_id:long query:!X = X;
invokeAfterMsgs#3dc4b4f0 msg_ids:Vector<long> query:!X = X;

account.updateProfile#78515775 flags:# first_name:flags.0?string last_name:flags.1?string about:flags.2?string = User;
account.sendChangePhoneCode#8e57deb flags:# allow_flashcall:flags.0?true phone_number:string current_number:flags.0?Bool = auth.SentCode;

เช†เชจเซ‡ เชชเชนเซ‡เชฒเซ€เชตเชพเชฐ เชœเซ‹เชจเชพเชฐ เชตเซเชฏเช•เซเชคเชฟ เชธเชพเชนเชœเชฟเช• เชฐเซ€เชคเซ‡ เชœเซ‡ เชฒเช–เซ‡เชฒเซเช‚ เช›เซ‡ เชคเซ‡เชจเชพ เชญเชพเช—เชจเซ‡ เชœ เช“เชณเช–เซ€ เชถเช•เชถเซ‡ - เชธเชพเชฐเซเช‚, เช† เชฆเซ‡เช–เซ€เชคเซ€ เชฐเซ€เชคเซ‡ เชฐเชšเชจเชพเช“ เช›เซ‡ (เชœเซ‹เช•เซ‡ เชจเชพเชฎ เช•เซเชฏเชพเช‚ เช›เซ‡, เชกเชพเชฌเซ€ เชฌเชพเชœเซ เช•เซ‡ เชœเชฎเชฃเซ€ เชฌเชพเชœเซ?), เชคเซ‡เชฎเชพเช‚ เช•เซเชทเซ‡เชคเซเชฐเซ‹ เช›เซ‡, เชœเซ‡เชจเชพ เชชเช›เซ€ เช•เซ‹เชฒเซ‹เชจ เชชเช›เซ€ เชเช• เชชเซเชฐเช•เชพเชฐ เช†เชตเซ‡ เช›เซ‡... เช•เชฆเชพเชš. เช…เชนเซ€เช‚ เช•เซ‹เชฃ เช•เซŒเช‚เชธเชฎเชพเช‚ เช•เชฆเชพเชš C++ เชœเซ‡เชตเชพ เชจเชฎเซ‚เชจเชพเช“ เช›เซ‡ (เชนเช•เซ€เช•เชคเชฎเชพเช‚, เช–เชฐเซ‡เช–เชฐ เชจเชฅเซ€). เช…เชจเซ‡ เช…เชจเซเชฏ เชคเชฎเชพเชฎ เชชเซเชฐเชคเซ€เช•เซ‹เชจเซ‹ เช…เชฐเซเชฅ เชถเซเช‚ เช›เซ‡, เชชเซเชฐเชถเซเชจ เชšเชฟเชนเซเชจเซ‹, เช‰เชฆเซเช—เชพเชฐเชตเชพเชšเช• เชšเชฟเชนเซเชจเซ‹, เชŸเช•เชพเชตเชพเชฐเซ€, เชนเซ‡เชถ เชšเชฟเชนเซเชจเซ‹ (เช…เชจเซ‡ เชฆเซ‡เช–เซ€เชคเซ€ เชฐเซ€เชคเซ‡ เชคเซ‡เชจเซ‹ เช…เชฐเซเชฅ เชœเซเชฆเซ€ เชœเซเชฆเซ€ เชœเช—เซเชฏเชพเช เชœเซเชฆเซ€ เชœเซเชฆเซ€ เชตเชธเซเชคเซเช“ เชฅเชพเชฏ เช›เซ‡), เช•เซเชฏเชพเชฐเซ‡เช• เชนเชพเชœเชฐ เชนเซ‹เชฏ เช›เซ‡ เช…เชจเซ‡ เช•เซเชฏเชพเชฐเซ‡เช• เชจเชนเซ€เช‚, เชนเซ‡เช•เซเชธเชพเชกเซ‡เชธเชฟเชฎเชฒ เชจเช‚เชฌเชฐเซ‹ - เช…เชจเซ‡ เชธเซŒเชฅเซ€ เช…เช—เชคเซเชฏเชจเซเช‚, เช†เชฎเชพเช‚เชฅเซ€ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฎเซ‡เชณเชตเชตเซเช‚ เชธเชพเชšเซ‹ เชเช• (เชœเซ‡ เชธเชฐเซเชตเชฐ เชฆเซเชตเชพเชฐเชพ เชจเช•เชพเชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ เชจเชนเซ€เช‚) เชฌเชพเชˆเชŸ เชธเซเชŸเซเชฐเซ€เชฎ? เชคเชฎเชพเชฐเซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เชตเชพเช‚เชšเชตเชพ เชชเชกเชถเซ‡ (เชนเชพ, เชจเชœเซ€เช•เชจเชพ JSON เชธเช‚เชธเซเช•เชฐเชฃเชฎเชพเช‚ เชธเซเช•เซ€เชฎเชพเชจเซ€ เชฒเชฟเช‚เช•เซเชธ เช›เซ‡ - เชชเชฐเช‚เชคเซ เชคเซ‡ เชคเซ‡เชจเซ‡ เชตเชงเซ เชธเซเชชเชทเซเชŸ เช•เชฐเชคเซเช‚ เชจเชฅเซ€).

เชชเซ‡เชœ เช–เซ‹เชฒเซ‹ เชฆเซเชตเชฟเชธเช‚เช—เซ€ เชกเซ‡เชŸเชพ เชธเซ€เชฐเซ€เชฏเชฒเชพเช‡เชเซ‡เชถเชจ เช…เชจเซ‡ เชฎเชถเชฐเซ‚เชฎเซเชธ เช…เชจเซ‡ เช…เชฒเช— เช—เชฃเชฟเชคเชจเซ€ เชœเชพเชฆเซเชˆ เชฆเซเชจเชฟเชฏเชพเชฎเชพเช‚ เชกเซ‚เชฌเช•เซ€ เชฒเช—เชพเชตเซ‹, 4เชฅเชพ เชตเชฐเซเชทเชฎเชพเช‚ เชฎเชŸเชจ เชœเซ‡เชตเซเช‚ เชœ เช•เช‚เชˆเช•. เช†เชฒเซเชซเชพเชฌเซ‡เชŸ, เชชเซเชฐเช•เชพเชฐ, เชฎเซ‚เชฒเซเชฏ, เช•เซ‹เชฎเซเชฌเซ€เชจเซ‡เชŸเชฐ, เชซเช‚เช•เซเชถเชจเชฒ เช•เซ‹เชฎเซเชฌเซ€เชจเซ‡เชŸเชฐ, เชจเซ‹เชฐเซเชฎเชฒ เชซเซ‹เชฐเซเชฎ, เช•เชฎเซเชชเซ‹เชเซ€เชŸ เชŸเชพเชˆเชช, เชชเซ‹เชฒเซ€เชฎเซ‹เชฐเซเชซเชฟเช• เชŸเชพเชˆเชช... เช…เชจเซ‡ เช† เชฌเชงเซเช‚ เชฎเชพเชคเซเชฐ เชชเซเชฐเชฅเชฎ เชชเซ‡เชœ เช›เซ‡! เช†เช—เชณ เชคเชฎเชพเชฐเซ€ เชฐเชพเชน เชœเซเช เช›เซ‡ TL เชญเชพเชทเชพ, เชœเซ‡, เชœเซ‹ เช•เซ‡ เชคเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชคเซเชšเซเช› เชตเชฟเชจเช‚เชคเซ€ เช…เชจเซ‡ เชชเซเชฐเชคเชฟเชธเชพเชฆเชจเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ เชงเชฐเชพเชตเซ‡ เช›เซ‡, เชคเซ‡ เชตเชงเซ เชฒเชพเช•เซเชทเชฃเชฟเช• เช•เซ‡เชธเซ‹ เชฎเชพเชŸเซ‡ เชฌเชฟเชฒเช•เซเชฒ เชœเชตเชพเชฌ เช†เชชเชคเซเช‚ เชจเชฅเซ€, เชœเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชคเชฎเชพเชฐเซ‡ เช…เชจเซเชฏ เช†เช  เชเชฎเซเชฌเซ‡เชกเซ‡เชก เชชเชฐ เชฐเชถเชฟเชฏเชจเชฎเชพเช‚เชฅเซ€ เช…เช‚เช—เซเชฐเซ‡เชœเซ€เชฎเชพเช‚ เช…เชจเซเชตเชพเชฆเชฟเชค เช—เชฃเชฟเชคเชจเชพ เชชเซเชจ: เช•เชนเซ‡เชตเชพเชฎเชพเช‚เชฅเซ€ เชชเชธเชพเชฐ เชฅเชตเซเช‚ เชชเชกเชถเซ‡. เชชเซƒเชทเซเช เซ‹

เช•เชพเชฐเซเชฏเชพเชคเซเชฎเช• เชญเชพเชทเชพเช“ เช…เชจเซ‡ เชธเซเชตเชšเชพเชฒเชฟเชค เชชเซเชฐเช•เชพเชฐ เช…เชจเซเชฎเชพเชจเชฅเซ€ เชชเชฐเชฟเชšเชฟเชค เชตเชพเชšเช•เซ‹, เช…เชฒเชฌเชคเซเชค, เช† เชญเชพเชทเชพเชฎเชพเช‚ เชตเชฐเซเชฃเชจเชจเซ€ เชญเชพเชทเชพ เชœเซ‹เชถเซ‡, เช‰เชฆเชพเชนเชฐเชฃเชฅเซ€ เชชเชฃ, เชตเชงเซ เชชเชฐเชฟเชšเชฟเชค, เช…เชจเซ‡ เช•เชนเซ€ เชถเช•เซ‡ เช›เซ‡ เช•เซ‡ เช† เช–เชฐเซ‡เช–เชฐ เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เชฐเซ€เชคเซ‡ เช–เชฐเชพเชฌ เชจเชฅเซ€. เช† เช…เช‚เช—เซ‡เชจเชพ เชตเชพเช‚เชงเชพเช“ เช›เซ‡:

  • เชนเชพ, เชนเซ‡เชคเซ เชธเชพเชฐเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เช…เชซเชธเซ‹เชธ, เชคเซ‡เชฃเซ€ เชนเชพเช‚เชธเชฒ เชจเชฅเซ€
  • เชฐเชถเชฟเชฏเชจ เชฏเซเชจเชฟเชตเชฐเซเชธเชฟเชŸเซ€เช“เชฎเชพเช‚ เชถเชฟเช•เซเชทเชฃ IT เชตเชฟเชถเซ‡เชทเชคเชพเช“เชฎเชพเช‚ เชชเชฃ เชฌเชฆเชฒเชพเชฏ เช›เซ‡ - เชฆเชฐเซ‡เช• เชตเซเชฏเช•เซเชคเชฟเช เช…เชจเซเชฐเซ‚เชช เช…เชญเซเชฏเชพเชธเช•เซเชฐเชฎ เชฒเซ€เชงเซ‹ เชจเชฅเซ€
  • เช›เซ‡เชตเชŸเซ‡, เชœเซ‡เชฎ เช†เชชเชฃเซ‡ เชœเซ‹เชˆเชถเซเช‚, เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เชคเซ‡ เช›เซ‡ เชœเชฐเซ‚เชฐเซ€ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เชตเชฐเซเชฃเชตเซ‡เชฒ TL เชจเซ‹ เชฎเชพเชคเซเชฐ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชธเชฌเชธเซ‡เชŸ เชตเชชเชฐเชพเชฏ เช›เซ‡

เชคเซ‡เชฎ เช•เชนเซเชฏเซเช‚ เช›เซ‡ เชฒเซ€เช“เชจเชฐเซเชก เชšเซ‡เชจเชฒ เชชเชฐ #perl เชซเซเชฐเซ€เชจเซ‹เชก เช†เช‡เช†เชฐเชธเซ€ เชจเซ‡เชŸเชตเชฐเซเช•เชฎเชพเช‚, เชœเซ‡เชฎเชฃเซ‡ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎเชฅเซ€ เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธ เชธเซเชงเซ€เชจเชพ เช—เซ‡เชŸเชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹ เชนเชคเซ‹ (เช…เชตเชคเชฐเชฃเชจเซ‹ เช…เชจเซเชตเชพเชฆ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚เชฅเซ€ เช…เชšเซ‹เช•เซเช•เชธ เช›เซ‡):

เชเชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เช•เซ‹เชˆเชจเซ‡ เชชเซเชฐเชฅเชฎ เชตเช–เชค เชฅเชฟเชฏเชฐเซ€ เชŸเชพเชˆเชช เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฐเชœเซ‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚, เชคเซ‡ เช‰เชคเซเชธเชพเชนเชฟเชค เชฅเชˆ เช—เชฏเซ‹, เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชฐเชฎเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซเชฏเซเช‚, เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เชคเซ‡เชจเซ€ เชœเชฐเซ‚เชฐ เชนเชคเซ€ เช•เซ‡ เช•เซ‡เชฎ เชคเซ‡เชจเซ€ เช–เชฐเซ‡เช–เชฐ เช•เชพเชณเชœเซ€ เชจ เชฒเซ€เชงเซ€.

เชคเชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชœเซเช“, เชœเซ‹ เช•เซ‹เชˆ เชชเซเชฐเชพเชฅเชฎเชฟเช• เชตเชธเซเชคเซ เชคเชฐเซ€เช•เซ‡ เชฌเซ‡เชฐ-เชŸเชพเชˆเชช (int, long, etc.) เชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชค เชชเซเชฐเชถเซเชจเซ‹ เช‰เชญเชพ เช•เชฐเชคเซ€ เชจเชฅเซ€ - เช†เช–เชฐเซ‡ เชคเซ‡ เชœเชพเชคเซ‡ เชœ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพ เชœเซ‹เชˆเช - เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชšเชพเชฒเซ‹ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชฎเซ‡เชณเชตเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€เช. เชตเซ‡เช•เซเชŸเชฐ. เชเชŸเชฒเซ‡ เช•เซ‡ เชนเช•เซ€เช•เชคเชฎเชพเช‚ เชเชฐเซ‡, เชœเซ‹ เชคเชฎเซ‡ เชชเชฐเชฟเชฃเชพเชฎเซ€ เชตเชธเซเชคเซเช“เชจเซ‡ เชคเซ‡เชฎเชจเชพ เชฏเซ‹เช—เซเชฏ เชจเชพเชฎเซ‹เชฅเซ€ เชฌเซ‹เชฒเชพเชตเซ‹ เช›เซ‹.

เชชเชฐเช‚เชคเซ เชชเชนเซ‡เชฒเชพ

เชœเซ‡เช“ เชธเชคเซเชคเชพเชตเชพเชฐ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เชตเชพเช‚เชšเชคเชพ เชจเชฅเซ€ เชคเซ‡เชฎเชจเชพ เชฎเชพเชŸเซ‡ TL เชธเชฟเชจเซเชŸเซ‡เช•เซเชธเชจเชพ เชธเชฌเชธเซ‡เชŸเชจเซเช‚ เชŸเซ‚เช‚เช•เซเช‚ เชตเชฐเซเชฃเชจ

constructor = Type;
myVec ids:Vector<long> = Type;

fixed#abcdef34 id:int = Type2;

fixedVec set:Vector<Type2> = FixedVec;

constructorOne#crc32 field1:int = PolymorType;
constructorTwo#2crc32 field_a:long field_b:Type3 field_c:int = PolymorType;
constructorThree#deadcrc bit_flags_of_what_really_present:# optional_field4:bit_flags_of_what_really_present.1?Type = PolymorType;

an_id#12abcd34 id:int = Type3;
a_null#6789cdef = Type3;

เชตเซเชฏเชพเช–เซเชฏเชพ เชนเช‚เชฎเซ‡เชถเชพ เชถเชฐเซ‚ เชฅเชพเชฏ เช›เซ‡ เชฌเชพเช‚เชงเชจเชพเชฐ, เชœเซ‡ เชชเช›เซ€ เชตเซˆเช•เชฒเซเชชเชฟเช• เชฐเซ€เชคเซ‡ (เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ - เชนเช‚เชฎเซ‡เชถเชพ) เชชเซเชฐเชคเซ€เช• เชฆเซเชตเชพเชฐเชพ # เชนเซ‹เชตเซเช‚ เชœ เชœเซ‹เชˆเช เชธเซ€เช†เชฐเชธเซ€ 32 เช† เชชเซเชฐเช•เชพเชฐเชจเชพ เชธเชพเชฎเชพเชจเซเชฏเช•เซƒเชค เชตเชฐเซเชฃเชจ เชถเชฌเซเชฆเชฎเชพเชณเชพเชฎเชพเช‚เชฅเซ€. เช†เช—เชณ เช•เซเชทเซ‡เชคเซเชฐเซ‹เชจเซเช‚ เชตเชฐเซเชฃเชจ เช†เชตเซ‡ เช›เซ‡; เชœเซ‹ เชคเซ‡เช“ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เชนเซ‹เชฏ, เชคเซ‹ เชชเซเชฐเช•เชพเชฐ เช–เชพเชฒเซ€ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡. เช† เชฌเชงเซเช‚ เชเช• เชธเชฎเชพเชจ เชšเชฟเชนเซเชจ เชธเชพเชฅเซ‡ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡, เชœเซ‡ เชชเซเชฐเช•เชพเชฐเชจเซเช‚ เชจเชพเชฎ เช† เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐ - เชเชŸเชฒเซ‡ เช•เซ‡, เชนเช•เซ€เช•เชคเชฎเชพเช‚, เชชเซ‡เชŸเชพเชชเซเชฐเช•เชพเชฐ - เชธเช‚เชฌเช‚เชงเชฟเชค เช›เซ‡. เชธเชฎเชพเชจ เชšเชฟเชนเซเชจเชจเซ€ เชœเชฎเชฃเซ€ เชฌเชพเชœเซเชจเซ‹ เชตเซเชฏเช•เซเชคเชฟ เช›เซ‡ เชชเซ‹เชฒเซ€เชฎเซ‹เชฐเซเชซเชฟเช• - เชเชŸเชฒเซ‡ เช•เซ‡, เช•เซ‡เชŸเชฒเชพเช• เชตเชฟเชถเชฟเชทเซเชŸ เชชเซเชฐเช•เชพเชฐเซ‹ เชคเซ‡เชจเซ‡ เช…เชจเซเชฐเซ‚เชช เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡.

เชœเซ‹ เชตเซเชฏเชพเช–เซเชฏเชพ เชฐเซ‡เช–เชพ เชชเช›เซ€ เชฅเชพเชฏ เช›เซ‡ ---functions---, เชชเช›เซ€ เชตเชพเช•เซเชฏเชฐเชšเชจเชพ เชธเชฎเชพเชจ เชฐเชนเซ‡เชถเซ‡, เชชเชฐเช‚เชคเซ เช…เชฐเซเชฅ เช…เชฒเช— เชนเชถเซ‡: เช•เช‚เชธเซเชŸเซเชฐเช•เซเชŸเชฐ เช†เชฐเชชเซ€เชธเซ€ เชซเช‚เช•เซเชถเชจเชจเซเช‚ เชจเชพเชฎ เชฌเชจเชถเซ‡, เชซเซ€เชฒเซเชกเซเชธ เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐเซเชธ เชฌเชจเซ€ เชœเชถเซ‡ (เชธเชพเชฐเซเช‚, เชเชŸเชฒเซ‡ เช•เซ‡, เชคเซ‡ เชจเซ€เชšเซ‡ เชตเชฐเซเชฃเชตเซเชฏเชพ เชชเซเชฐเชฎเชพเชฃเซ‡, เช†เชชเซ‡เชฒ เชฎเชพเชณเช–เซเช‚ เชฌเชฐเชพเชฌเชฐ เช เชœ เชฐเชนเซ‡เชถเซ‡. , เช† เชซเช•เซเชค เชธเซ‹เช‚เชชเซ‡เชฒ เช…เชฐเซเชฅ เชนเชถเซ‡), เช…เชจเซ‡ "เชชเซ‹เชฒเชฟเชฎเซ‹เชฐเซเชซเชฟเช• เชชเซเชฐเช•เชพเชฐ " - เชชเชฐเชค เช•เชฐเซ‡เชฒเชพ เชชเชฐเชฟเชฃเชพเชฎเชจเซ‹ เชชเซเชฐเช•เชพเชฐ. เชธเชพเชšเซเช‚, เชคเซ‡ เชนเชœเซ€ เชชเชฃ เชฌเชนเซเชฐเซ‚เชชเซ€ เชฐเชนเซ‡เชถเซ‡ - เชซเช•เซเชค เชตเชฟเชญเชพเช—เชฎเชพเช‚ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค ---types---, เชชเชฐเช‚เชคเซ เช† เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐเชจเซ‡ "เช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ เชจเชนเซ€เช‚". เชคเซ‡เชฎเชจเซ€ เชฆเชฒเซ€เชฒเซ‹ เชฆเซเชตเชพเชฐเชพ เช•เชนเซ‡เชตเชพเชคเชพ เช•เชพเชฐเซเชฏเซ‹เชจเชพ เชชเซเชฐเช•เชพเชฐเซ‹เชจเซ‡ เช“เชตเชฐเชฒเซ‹เชก เช•เชฐเชตเซเช‚, เชเชŸเชฒเซ‡ เช•เซ‡. เช•เซ‡เชŸเชฒเชพเช• เช•เชพเชฐเชฃเซ‹เชธเชฐ, เชเช• เชœ เชจเชพเชฎเชจเชพ เชชเชฐเช‚เชคเซ เช…เชฒเช—-เช…เชฒเช— เชนเชธเซเชคเชพเช•เซเชทเชฐเซ‹ เชธเชพเชฅเซ‡เชจเชพ เช˜เชฃเชพ เช•เชพเชฐเซเชฏเซ‹, เชœเซ‡เชฎ เช•เซ‡ C++ เชฎเชพเช‚, TL เชฎเชพเช‚ เชชเซ‚เชฐเชพ เชชเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเชคเชพ เชจเชฅเซ€.

เชถเชพ เชฎเชพเชŸเซ‡ "เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐ" เช…เชจเซ‡ "เชชเซ‹เชฒเชฟเชฎเซ‹เชฐเซเชซเชฟเช•" เชœเซ‹ เชคเซ‡ OOP เชจเชฅเซ€? เช เซ€เช• เช›เซ‡, เชตเชพเชธเซเชคเชตเชฎเชพเช‚, เช•เซ‹เชˆ เชตเซเชฏเช•เซเชคเชฟ เชฎเชพเชŸเซ‡ OOP เชฆเซเชฐเชทเซเชŸเชฟเช เช† เชตเชฟเชถเซ‡ เชตเชฟเชšเชพเชฐเชตเซเช‚ เชธเชฐเชณ เชฌเชจเชถเซ‡ - เชเช• เช…เชฎเซ‚เชฐเซเชค เชตเชฐเซเช— เชคเชฐเซ€เช•เซ‡ เชฌเชนเซเชฐเซ‚เชชเซ€ เชชเซเชฐเช•เชพเชฐ, เช…เชจเซ‡ เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐ เชคเซ‡เชจเชพ เชธเซ€เชงเชพ เชตเช‚เชถเชœ เชตเชฐเซเช—เซ‹ เช›เซ‡, เช…เชจเซ‡ final เชธเช‚เช–เซเชฏเชพเชฌเช‚เชง เชญเชพเชทเชพเช“เชจเซ€ เชชเชฐเชฟเชญเชพเชทเชพเชฎเชพเช‚. เชนเช•เซ€เช•เชคเชฎเชพเช‚, เช…เชฒเชฌเชคเซเชค, เช…เชนเซ€เช‚ เชœ เชธเชฎเชพเชจเชคเชพ OO เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเช“เชฎเชพเช‚ เชตเชพเชธเซเชคเชตเชฟเช• เช“เชตเชฐเชฒเซ‹เชกเซ‡เชก เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐ เชชเชฆเซเชงเชคเชฟเช“ เชธเชพเชฅเซ‡. เช…เชนเซ€เช‚ เชฎเชพเชคเซเชฐ เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเช•เซเชšเชฐเซเชธ เชนเซ‹เชตเชพเชฅเซ€, เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชชเชฆเซเชงเชคเชฟเช“ เชจเชฅเซ€ (เชœเซ‹เช•เซ‡ เช†เช—เชณเชจเชพ เช•เชพเชฐเซเชฏเซ‹ เช…เชจเซ‡ เชชเชฆเซเชงเชคเชฟเช“เชจเซเช‚ เชตเชฐเซเชฃเชจ เชคเซ‡เช“ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เช›เซ‡ เชคเซ‡ เช…เช‚เช—เซ‡ เชฎเซ‚เช‚เชเชตเชฃ เชชเซ‡เชฆเชพ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเชฆเซเชฆเชจ เชธเช•เซเชทเชฎ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชเช• เช…เชฒเช— เชฌเชพเชฌเชค เช›เซ‡) - เชคเชฎเซ‡ เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐเชจเซ‡ เชเช• เชฎเซ‚เชฒเซเชฏ เชคเชฐเซ€เช•เซ‡ เชตเชฟเชšเชพเชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เชœเซ‡ เชจเชฟเชฐเซเชฎเชพเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เชฌเชพเชˆเชŸ เชธเซเชŸเซเชฐเซ€เชฎ เชตเชพเช‚เชšเชคเซ€ เชตเช–เชคเซ‡ เชŸเชพเชˆเชช เช•เชฐเซ‹.

เช† เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฅเชพเชฏ เช›เซ‡? เชกเชฟเชธเชฟเชฐเชฟเชฏเชฒเชพเช‡เชเชฐ, เชœเซ‡ เชนเช‚เชฎเซ‡เชถเชพ 4 เชฌเชพเช‡เชŸเซเชธ เชตเชพเช‚เชšเซ‡ เช›เซ‡, เชฎเซ‚เชฒเซเชฏ เชœเซเช เช›เซ‡ 0xcrc32 - เช…เชจเซ‡ เชธเชฎเชœเซ‡ เช›เซ‡ เช•เซ‡ เช†เช—เชณ เชถเซเช‚ เชฅเชถเซ‡ field1 เชชเซเชฐเช•เชพเชฐ เชธเชพเชฅเซ‡ int, เชเชŸเชฒเซ‡ เช•เซ‡ เชฌเชฐเชพเชฌเชฐ 4 เชฌเชพเช‡เชŸเซเชธ เชตเชพเช‚เชšเซ‡ เช›เซ‡, เช†เชจเชพ เชชเชฐ เชชเซเชฐเช•เชพเชฐ เชธเชพเชฅเซ‡ เช“เชตเชฐเชฒเชพเช‡เช‚เช— เชซเซ€เชฒเซเชก PolymorType เชตเชพเช‚เชšเชตเซเช‚. เชœเซเช เช›เซ‡ 0x2crc32 เช…เชจเซ‡ เชธเชฎเชœเซ‡ เช›เซ‡ เช•เซ‡ เช†เช—เชณ เชฌเซ‡ เช•เซเชทเซ‡เชคเซเชฐเซ‹ เช›เซ‡, เชชเซเชฐเชฅเชฎ long, เชœเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡ เช•เซ‡ เช†เชชเชฃเซ‡ 8 เชฌเชพเช‡เชŸเซเชธ เชตเชพเช‚เชšเซ€เช เช›เซ€เช. เช…เชจเซ‡ เชชเช›เซ€ เชซเชฐเซ€เชฅเซ€ เชเช• เชœเชŸเชฟเชฒ เชชเซเชฐเช•เชพเชฐ, เชœเซ‡ เช เชœ เชฐเซ€เชคเซ‡ เชกเซ€เชธเซ€เชฐเชฟเชฏเชฒเชพเช‡เชเซเชก เช›เซ‡. เชฆเชพเช–เซเชฒเชพ เชคเชฐเซ€เช•เซ‡, Type3 เชธเชฐเซเช•เชฟเชŸเชฎเชพเช‚ เช…เชจเซเช•เซเชฐเชฎเซ‡ เชฌเซ‡ เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐ เชคเชฐเซ€เช•เซ‡ เชœเชฒเชฆเซ€ เชœเชพเชนเซ‡เชฐ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชชเช›เซ€ เชคเซ‡เช“เช เชฌเช‚เชจเซ‡เชฎเชพเช‚เชฅเซ€ เชเช•เชจเซ‡ เชฎเชณเชตเซเช‚ เชœเซ‹เชˆเช 0x12abcd34, เชœเซ‡ เชชเช›เซ€ เชคเชฎเชพเชฐเซ‡ 4 เชตเชงเซ เชฌเชพเช‡เชŸเซเชธ เชตเชพเช‚เชšเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ int, เช…เชฅเชตเชพ 0x6789cdef, เชœเซ‡ เชชเช›เซ€ เช•เช‚เชˆ เชฐเชนเซ‡เชถเซ‡ เชจเชนเซ€เช‚. เชฌเซ€เชœเซเช‚ เช•เช‚เชˆเชชเชฃ - เชคเชฎเชพเชฐเซ‡ เช…เชชเชตเชพเชฆ เชซเซ‡เช‚เช•เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช•เซ‹เชˆเชชเชฃ เชฐเซ€เชคเซ‡, เช† เชชเช›เซ€ เช†เชชเชฃเซ‡ 4 เชฌเชพเชˆเชŸ เชตเชพเช‚เชšเชตเชพ เชชเชฐ เชชเชพเช›เชพ เชœเชˆเช เช›เซ€เช int เช•เซเชทเซ‡เชคเซเชฐเซ‹ field_c ะฒ constructorTwo เช…เชจเซ‡ เชคเซ‡ เชธเชพเชฅเซ‡ เช…เชฎเซ‡ เช…เชฎเชพเชฐเซเช‚ เชตเชพเช‚เชšเชจ เชธเชฎเชพเชชเซเชค เช•เชฐเซ€เช เช›เซ€เช PolymorType.

เช…เช‚เชคเซ‡, เชœเซ‹ เชคเชฎเซ‡ เชชเช•เชกเชพเชˆ เชœเชพเช“ 0xdeadcrc เชฎเชพเชŸเซ‡ constructorThree, เชชเช›เซ€ เชฌเชงเซเช‚ เชตเชงเซ เชœเชŸเชฟเชฒ เชฌเชจเซ€ เชœเชพเชฏ เช›เซ‡. เช…เชฎเชพเชฐเซเช‚ เชชเซเชฐเชฅเชฎ เช•เซเชทเซ‡เชคเซเชฐ เช›เซ‡ bit_flags_of_what_really_present เชชเซเชฐเช•เชพเชฐ เชธเชพเชฅเซ‡ # - เชตเชพเชธเซเชคเชตเชฎเชพเช‚, เช† เชชเซเชฐเช•เชพเชฐ เชฎเชพเชŸเซ‡ เชฎเชพเชคเซเชฐ เชเช• เช‰เชชเชจเชพเชฎ เช›เซ‡ nat, เชœเซ‡เชจเซ‹ เช…เชฐเซเชฅ เชฅเชพเชฏ เช›เซ‡ "เช•เซเชฆเชฐเชคเซ€ เชธเช‚เช–เซเชฏเชพ". เชคเซ‡ เช›เซ‡, เชนเช•เซ€เช•เชคเชฎเชพเช‚, เชธเชนเซ€ เชตเชฟเชจเชพเชจเซ€ เชชเซ‚เชฐเซเชฃเชพเช‚เช•, เชฎเชพเชฐเซเช— เชฆเซเชตเชพเชฐเชพ, เชเช• เชฎเชพเชคเซเชฐ เช•เซ‡เชธ เชœเซเชฏเชพเชฐเซ‡ เชฌเชฟเชจ-เชธเชนเซ€ เช•เชฐเซ‡เชฒ เชธเช‚เช–เซเชฏเชพเช“ เชตเชพเชธเซเชคเชตเชฟเช• เชธเชฐเซเช•เชฟเชŸเชฎเชพเช‚ เชฅเชพเชฏ เช›เซ‡. เชคเซ‡เชฅเซ€, เช†เช—เชณ เชเช• เชชเซเชฐเชถเซเชจ เชšเชฟเชนเซเชจ เชธเชพเชฅเซ‡เชจเซเช‚ เชฌเชพเช‚เชงเช•เชพเชฎ เช›เซ‡, เชœเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡ เช•เซ‡ เช† เช•เซเชทเซ‡เชคเซเชฐ - เชคเซ‡ เชตเชพเชฏเชฐ เชชเชฐ เชคเซเชฏเชพเชฐเซ‡ เชœ เชนเชพเชœเชฐ เชฐเชนเซ‡เชถเซ‡ เชœเซ‹ เชธเช‚เชฌเช‚เชงเชฟเชค เชฌเซ€เชŸ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชซเซ€เชฒเซเชกเชฎเชพเช‚ เชธเซ‡เชŸ เช•เชฐเซ‡เชฒ เชนเซ‹เชฏ (เชฒเช—เชญเช— เชเช• เชคเซƒเชคเซ€เชฏ เช“เชชเชฐเซ‡เชŸเชฐเชจเซ€ เชœเซ‡เชฎ). เชคเซ‡เชฅเซ€, เชšเชพเชฒเซ‹ เชฎเชพเชจเซ€ เชฒเชˆเช เช•เซ‡ เช† เชฌเซ€เชŸ เชธเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€, เชœเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡ เช•เซ‡ เช†เช—เชณ เช†เชชเชฃเซ‡ เชซเซ€เชฒเซเชก เชตเชพเช‚เชšเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ Type, เชœเซ‡เชฎเชพเช‚ เช…เชฎเชพเชฐเชพ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚ 2 เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐ เช›เซ‡. เชเช• เช–เชพเชฒเซ€ เช›เซ‡ (เชซเช•เซเชค เช“เชณเช–เช•เชฐเซเชคเชพเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเซ‡ เช›เซ‡), เชฌเซ€เชœเชพเชฎเชพเช‚ เช•เซเชทเซ‡เชคเซเชฐ เช›เซ‡ ids เชชเซเชฐเช•เชพเชฐ เชธเชพเชฅเซ‡ ids:Vector<long>.

เชคเชฎเซ‡ เชตเชฟเชšเชพเชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช•เซ‡ เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸเซเชธ เช…เชจเซ‡ เชœเซ‡เชจเชฐเชฟเช• เชฌเช‚เชจเซ‡ เชธเชพเชงเช• เช…เชฅเชตเชพ เชœเชพเชตเชพเชฎเชพเช‚ เช›เซ‡. เชชเชฃ เชจเชพ. เชฒเช—เชญเช—. เช† เชฎเชพเชคเซเชฐ เชตเชพเชธเซเชคเชตเชฟเช• เชธเชฐเซเช•เชฟเชŸเชฎเชพเช‚ เช•เซ‹เชฃ เช•เซŒเช‚เชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ‹ เช•เซ‡เชธ, เช…เชจเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชซเช•เซเชค เชตเซ‡เช•เซเชŸเชฐ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡. เชฌเชพเชˆเชŸ เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚, เช† เชตเซ‡เช•เซเชŸเชฐ เชชเซเชฐเช•เชพเชฐ เชฎเชพเชŸเซ‡ 4 CRC32 เชฌเชพเชˆเชŸเซเชธ เชนเชถเซ‡, เชนเช‚เชฎเซ‡เชถเชพ เชเช•เชธเชฐเช–เชพ, เชชเช›เซ€ 4 เชฌเชพเชˆเชŸ - เชเชฐเซ‡ เชคเชคเซเชตเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ เช…เชจเซ‡ เชชเช›เซ€ เช† เชคเชคเซเชตเซ‹ เชชเซ‹เชคเซ‡.

เช†เชฎเชพเช‚ เช เชนเช•เซ€เช•เชค เช‰เชฎเซ‡เชฐเซ‹ เช•เซ‡ เชธเซ€เชฐเซ€เชฏเชฒเชพเช‡เชเซ‡เชถเชจ เชนเช‚เชฎเซ‡เชถเชพ 4 เชฌเชพเช‡เชŸเชจเชพ เชถเชฌเซเชฆเซ‹เชฎเชพเช‚ เชฅเชพเชฏ เช›เซ‡, เชคเชฎเชพเชฎ เชชเซเชฐเช•เชพเชฐเซ‹ เชคเซ‡เชจเชพ เช—เซเชฃเชพเช‚เช• เช›เซ‡ - เชฌเชฟเชฒเซเชŸ-เช‡เชจ เชชเซเชฐเช•เชพเชฐเซ‹ เชชเชฃ เชตเชฐเซเชฃเชตเซ‡เชฒ เช›เซ‡. bytes ะธ string เชฒเช‚เชฌเชพเชˆเชจเชพ เชฎเซ‡เชจเซเชฏเซเช…เชฒ เชธเซ€เชฐเซ€เชฒเชพเชˆเชเซ‡เชถเชจ เช…เชจเซ‡ 4 เชฆเซเชตเชพเชฐเชพ เช† เช—เซ‹เช เชตเชฃเซ€ เชธเชพเชฅเซ‡ - เชธเชพเชฐเซเช‚, เชคเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เช…เชจเซ‡ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เช…เชธเชฐเช•เชพเชฐเช• เชฒเชพเช—เซ‡ เช›เซ‡? เชคเซ‡เชฎ เช›เชคเชพเช‚ TL เชจเซ‡ เช…เชธเชฐเช•เชพเชฐเช• เชฆเซเชตเชฟเชธเช‚เช—เซ€ เชธเซ€เชฐเซ€เชฏเชฒเชพเช‡เชเซ‡เชถเชจ เชนเซ‹เชตเชพเชจเซ‹ เชฆเชพเชตเซ‹ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซ‡เชฎเชจเซ€ เชธเชพเชฅเซ‡ เชจเชฐเช•เชฎเชพเช‚, เชฒเช—เชญเช— เช•เซ‹เชˆเชชเชฃ เชตเชธเซเชคเซเชจเชพ เชตเชฟเชธเซเชคเชฐเชฃ เชธเชพเชฅเซ‡, เชฌเซเชฒเชฟเชฏเชจ เชฎเซ‚เชฒเซเชฏเซ‹ เช…เชจเซ‡ เชธเชฟเช‚เช—เชฒ-เช•เซ‡เชฐเซ‡เช•เซเชŸเชฐ เชธเซเชŸเซเชฐเชฟเช‚เช—เซเชธ 4 เชฌเชพเช‡เชŸเซเชธ เชธเซเชงเซ€, เชถเซเช‚ JSON เชนเชœเซ€ เชตเชงเซ เชœเชพเชกเซเช‚ เชนเชถเซ‡? เชœเซเช“, เชฌเชฟเชจเชœเชฐเซ‚เชฐเซ€ เชซเซ€เชฒเซเชกเซเชธ เชชเชฃ เชฌเซ€เชŸ เชซเซเชฒเซ‡เช—เซเชธ เชธเชพเชฅเซ‡ เช›เซ‹เชกเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชฌเชงเซเช‚ เช–เซ‚เชฌ เชธเชพเชฐเซเช‚ เช›เซ‡, เช…เชจเซ‡ เชญเชตเชฟเชทเซเชฏ เชฎเชพเชŸเซ‡ เชเช•เซเชธเซเชŸเซ‡เชจเซเชธเชฟเชฌเชฒ เชชเชฃ เช›เซ‡, เชคเซ‹ เชชเช›เซ€ เชถเชพ เชฎเชพเชŸเซ‡ เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐเชฎเชพเช‚ เชจเชตเชพ เชตเซˆเช•เชฒเซเชชเชฟเช• เช•เซเชทเซ‡เชคเซเชฐเซ‹ เช‰เชฎเซ‡เชฐเชถเซ‹ เชจเชนเซ€เช‚?..

เชชเชฐเช‚เชคเซ เชจเชพ, เชœเซ‹ เชคเชฎเซ‡ เชฎเชพเชฐเซเช‚ เชธเช‚เช•เซเชทเชฟเชชเซเชค เชตเชฐเซเชฃเชจ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เชตเชพเช‚เชšเซ‹ เช…เชจเซ‡ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชตเชฟเชถเซ‡ เชตเชฟเชšเชพเชฐเซ‹. เชธเซŒเชชเซเชฐเชฅเชฎ, เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐเชจเชพ CRC32 เชจเซ€ เช—เชฃเชคเชฐเซ€ เชธเซเช•เซ€เชฎเชจเชพ เชŸเซ‡เช•เซเชธเซเชŸ เชตเชฐเซเชฃเชจเชจเซ€ เชธเชพเชฎเชพเชจเซเชฏ เชฒเชพเช‡เชจ เช…เชจเซเชธเชพเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ (เชตเชงเชพเชฐเชพเชจเซ€ เชตเซเชนเชพเช‡เชŸเชธเซเชชเซ‡เชธ เชฆเซ‚เชฐ เช•เชฐเซ‹, เชตเช—เซ‡เชฐเซ‡.) - เชคเซ‡เชฅเซ€ เชœเซ‹ เชจเชตเซเช‚ เช•เซเชทเซ‡เชคเซเชฐ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡, เชคเซ‹ เชชเซเชฐเช•เชพเชฐ เชตเชฐเซเชฃเชจ เชฐเซ‡เช–เชพ เชฌเชฆเชฒเชพเชถเซ‡, เช…เชจเซ‡ เชคเซ‡เชฅเซ€ เชคเซ‡เชจเซ€ CRC32 เช…เชจเซ‡ , เชชเชฐเชฟเชฃเชพเชฎเซ‡, เช•เซเชฐเชฎเชพเช‚เช•เชจ. เช…เชจเซ‡ เชœเซ‚เชจเชพ เช•เซเชฒเชพเชฏเชจเซเชŸ เชถเซเช‚ เช•เชฐเชถเซ‡ เชœเซ‹ เชคเซ‡เชจเซ‡ เชจเชตเชพ เชซเซเชฒเซ‡เช— เชธเซ‡เชŸ เชธเชพเชฅเซ‡ เชซเซ€เชฒเซเชก เชฎเชณเซ‡, เช…เชจเซ‡ เชคเซ‡ เชœเชพเชฃเชคเซ‹ เชจเชฅเซ€ เช•เซ‡ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เช†เช—เชณ เชถเซเช‚ เช•เชฐเชตเซเช‚?..

เชฌเซ€เชœเซเช‚, เชšเชพเชฒเซ‹ เชฏเชพเชฆ เช•เชฐเซ€เช เชธเซ€เช†เชฐเชธเซ€ 32, เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช…เชนเซ€เช‚ เช…เชจเชฟเชตเชพเชฐเซเชฏเชชเชฃเซ‡ เชคเชฐเซ€เช•เซ‡ เชฅเชพเชฏ เช›เซ‡ เชนเซ‡เชถ เช•เชพเชฐเซเชฏเซ‹ เชตเชฟเชถเชฟเชทเซเชŸ เชฐเซ€เชคเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‡ เช•เชฏเชพ เชชเซเชฐเช•เชพเชฐเชจเซเช‚ (เชกเซ€) เช•เซเชฐเชฎเชพเช‚เช•เชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡. เช…เชนเซ€เช‚ เช†เชชเชฃเซ‡ เช…เชฅเชกเชพเชฎเชฃเชจเซ€ เชธเชฎเชธเซเชฏเชพเชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช - เช…เชจเซ‡ เชจเชพ, เชธเช‚เชญเชพเชตเชจเชพ 232 เชฎเชพเช‚ เชเช• เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช˜เชฃเซ€ เชตเชงเชพเชฐเซ‡ เช›เซ‡. เช•เซ‹เชจเซ‡ เชฏเชพเชฆ เช›เซ‡ เช•เซ‡ CRC32 เชธเช‚เชšเชพเชฐ เชšเซ‡เชจเชฒเชฎเชพเช‚ เชญเซ‚เชฒเซ‹ เชถเซ‹เชงเชตเชพ (เช…เชจเซ‡ เชธเซเชงเชพเชฐเชตเชพ) เชฎเชพเชŸเซ‡ เชฐเชšเชพเชฏเซ‡เชฒ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡ เชฎเซเชœเชฌ เช…เชจเซเชฏเชจเชพ เชจเซเช•เชธเชพเชจ เชฎเชพเชŸเซ‡ เช† เช—เซเชฃเชงเชฐเซเชฎเซ‹เชจเซ‡ เชธเซเชงเชพเชฐเซ‡ เช›เซ‡? เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเซ‡ เชฌเชพเช‡เชŸเซเชธเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เช—เซ‹เช เชตเชตเชพเชจเซ€ เช•เชพเชณเชœเซ€ เชฒเซ‡เชคเซเช‚ เชจเชฅเซ€: เชœเซ‹ เชคเชฎเซ‡ เชฌเซ‡ เชฒเซ€เชŸเซ€เช“เชฎเชพเช‚เชฅเซ€ CRC32 เชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ เชฌเซ€เชœเชพเชฎเชพเช‚ เชคเชฎเซ‡ เชชเซเชฐเชฅเชฎ 4 เชฌเชพเช‡เชŸเชจเซ‡ เช†เช—เชพเชฎเซ€ 4 เชฌเชพเช‡เชŸ เชธเชพเชฅเซ‡ เชธเซเชตเซ‡เชช เช•เชฐเซ‹ เช›เซ‹ - เชคเซ‡ เชธเชฎเชพเชจ เชนเชถเซ‡. เชœเซเชฏเชพเชฐเซ‡ เช…เชฎเชพเชฐเซเช‚ เช‡เชจเชชเซเชŸ เชฒเซ‡เชŸเชฟเชจ เชฎเซ‚เชณเชพเช•เซเชทเชฐเซ‹ (เช…เชจเซ‡ เชฅเซ‹เชกเซเช‚ เชตเชฟเชฐเชพเชฎเชšเชฟเชนเซเชจ) เชฎเชพเช‚เชฅเซ€ เชŸเซ‡เช•เซเชธเซเชŸ เชถเชฌเซเชฆเชฎเชพเชณเชพเช“ เชนเซ‹เชฏ เช›เซ‡, เช…เชจเซ‡ เช† เชจเชพเชฎเซ‹ เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชฐเซ‡เชจเซเชกเชฎ เชจเชฅเซ€, เชคเซเชฏเชพเชฐเซ‡ เช†เชตเซ€ เชชเซเชจ: เช—เซ‹เช เชตเชฃเซ€เชจเซ€ เชธเช‚เชญเชพเชตเชจเชพ เช˜เชฃเซ€ เชตเชงเซ€ เชœเชพเชฏ เช›เซ‡.

เชฌเชพเชฏ เชง เชตเซ‡, เช•เซ‹เชฃเซ‡ เชคเชชเชพเชธเซเชฏเซเช‚ เช•เซ‡ เชคเซเชฏเชพเช‚ เชถเซเช‚ เชนเชคเซเช‚? เช–เชฐเซ‡เช–เชฐ CRC32? เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เชธเซเชคเซเชฐเซ‹เชคเซ‹เชฎเชพเช‚เชจเชพ เชเช• (เชตเซ‹เชฒเซเชŸเชฎเซ‡เชจ เชชเชนเซ‡เชฒเชพ เชชเชฃ) เชชเชพเชธเซ‡ เชนเซ‡เชถ เชซเช‚เช•เซเชถเชจ เชนเชคเซเช‚ เชœเซ‡ เชฆเชฐเซ‡เช• เช…เช•เซเชทเชฐเชจเซ‡ 239 เชจเช‚เชฌเชฐเชฅเซ€ เช—เซเชฃเชพเช•เชพเชฐ เช•เชฐเซ‡ เช›เซ‡, เช† เชฒเซ‹เช•เซ‹ เชฆเซเชตเชพเชฐเชพ เช–เซ‚เชฌ เชชเซเชฐเชฟเชฏ เช›เซ‡, เชนเชพ เชนเชพ!

เช›เซ‡เชฒเซเชฒเซ‡, เช เซ€เช• เช›เซ‡, เช…เชฎเชจเซ‡ เชธเชฎเชœเชพเชฏเซเช‚ เช•เซ‡ เชซเซ€เชฒเซเชก เชชเซเชฐเช•เชพเชฐ เชธเชพเชฅเซ‡ เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐ Vector<int> ะธ Vector<PolymorType> เช…เชฒเช— CRC32 เชนเชถเซ‡. เช“เชจเชฒเชพเชˆเชจ เช•เชพเชฎเช—เซ€เชฐเซ€ เชตเชฟเชถเซ‡ เชถเซเช‚? เช…เชจเซ‡ เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เชฆเซƒเชทเซเชŸเชฟเช•เซ‹เชฃเชฅเซ€, เชถเซเช‚ เช† เชชเซเชฐเช•เชพเชฐเชจเซ‹ เชญเชพเช— เชฌเชจเซ€ เชœเชพเชฏ เช›เซ‡? เชšเชพเชฒเซ‹ เช•เชนเซ€เช เช•เซ‡ เช†เชชเชฃเซ‡ เชฆเชธ เชนเชœเชพเชฐ เชธเช‚เช–เซเชฏเชพเช“เชจเซ€ เชเชฐเซ‡ เชชเชธเชพเชฐ เช•เชฐเซ€เช เช›เซ€เช, เชธเชพเชฅเซ‡ เชธเชพเชฅเซ‡ Vector<int> เชฌเชงเซเช‚ เชธเซเชชเชทเซเชŸ เช›เซ‡, เชฒเช‚เชฌเชพเชˆ เช…เชจเซ‡ เช…เชจเซเชฏ 40000 เชฌเชพเช‡เชŸเซเชธ. เชœเซ‹ เช† Vector<Type2>, เชœเซ‡เชฎเชพเช‚ เชฎเชพเชคเซเชฐ เชเช• เช•เซเชทเซ‡เชคเซเชฐเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡ int เช…เชจเซ‡ เชคเซ‡ เชชเซเชฐเช•เชพเชฐเชฎเชพเช‚ เชเช•เชฒเซเช‚ เช›เซ‡ - เชถเซเช‚ เช†เชชเชฃเซ‡ 10000xabcdef0 34 เชตเช–เชค เช…เชจเซ‡ เชชเช›เซ€ 4 เชฌเชพเช‡เชŸเซเชธเชจเซเช‚ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡? int, เช…เชฅเชตเชพ เชญเชพเชทเชพ เช†เชชเชฃเชพ เชฎเชพเชŸเซ‡ เชคเซ‡เชจเซ‡ เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐเชฅเซ€ เชธเซเชตเชคเช‚เชคเซเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เช›เซ‡ fixedVec เช…เชจเซ‡ 80000 เชฌเชพเช‡เชŸเซเชธเชจเซ‡ เชฌเชฆเชฒเซ‡, เชซเชฐเซ€เชฅเซ€ เชฎเชพเชคเซเชฐ 40000 เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เช•เชฐเซ‹?

เช† เชฌเชฟเชฒเช•เซเชฒ เชจเชฟเชทเซเช•เซเชฐเชฟเชฏ เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เชชเซเชฐเชถเซเชจ เชจเชฅเซ€ - เช•เชฒเซเชชเชจเชพ เช•เชฐเซ‹ เช•เซ‡ เชคเชฎเชจเซ‡ เชœเซ‚เชฅ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเซ€ เชธเซ‚เชšเชฟ เชชเซเชฐเชพเชชเซเชค เชฅเชˆ เช›เซ‡, เชœเซ‡เชฎเชพเช‚เชจเชพ เชฆเชฐเซ‡เช• เชชเชพเชธเซ‡ เช†เชˆเชกเซ€, เชชเซเชฐเชฅเชฎ เชจเชพเชฎ, เช›เซ‡เชฒเซเชฒเซเช‚ เชจเชพเชฎ เช›เซ‡ - เชฎเซ‹เชฌเชพเช‡เชฒ เช•เชจเซ‡เช•เซเชถเชจ เชชเชฐ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เช•เชฐเชพเชฏเซ‡เชฒ เชกเซ‡เชŸเชพเชจเซ€ เชฎเชพเชคเซเชฐเชพเชฎเชพเช‚ เชคเชซเชพเชตเชค เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡. เชคเซ‡ เชšเซ‹เช•เซเช•เชธเชชเชฃเซ‡ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชธเซ€เชฐเซ€เชฏเชฒเชพเช‡เชเซ‡เชถเชจเชจเซ€ เช…เชธเชฐเช•เชพเชฐเช•เชคเชพ เช›เซ‡ เชœเซ‡เชจเซ€ เช…เชฎเชจเซ‡ เชœเชพเชนเซ‡เชฐเชพเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชคเซ‹โ€ฆ

เชตเซ‡เช•เซเชŸเชฐ, เชœเซ‡ เช•เซเชฏเชพเชฐเซ‡เชฏ เชฐเชฟเชฒเซ€เช เชฅเชฏเซเช‚ เชจ เชนเชคเซเช‚

เชœเซ‹ เชคเชฎเซ‡ เช•เซ‹เชฎเซเชฌเชฟเชจเซ‡เชŸเชฐเซเชธ เชตเช—เซ‡เชฐเซ‡เชจเชพ เชตเชฐเซเชฃเชจเชจเชพ เชชเซƒเชทเซเช เซ‹เชฎเชพเช‚เชฅเซ€ เชชเชธเชพเชฐ เชฅเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ เชคเชฎเซ‡ เชœเซ‹เชถเซ‹ เช•เซ‡ เชเช• เชตเซ‡เช•เซเชŸเชฐ (เช…เชจเซ‡ เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธ เชชเชฃ) เช”เชชเชšเชพเชฐเชฟเช• เชฐเซ€เชคเซ‡ เช…เชจเซ‡เช• เชถเซ€เชŸเซเชธเชจเชพ เชŸเซเชฏเซเชชเชฒเซเชธ เชฆเซเชตเชพเชฐเชพ เช†เช‰เชŸเชชเซเชŸ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เช›เซ‡. เชชเชฐเช‚เชคเซ เช…เช‚เชคเซ‡ เชคเซ‡เช“ เชญเซ‚เชฒเซ€ เชœเชพเชฏ เช›เซ‡, เช…เช‚เชคเชฟเชฎ เชชเช—เชฒเซเช‚ เช…เชตเช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชตเซ‡เช•เซเชŸเชฐเชจเซ€ เชตเซเชฏเชพเช–เซเชฏเชพ เชธเชฐเชณ เชฐเซ€เชคเซ‡ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡ เชนเชœเซ เชธเซเชงเซ€ เชเช• เชชเซเชฐเช•เชพเชฐ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒเซ€ เชจเชฅเซ€. เชถเซเช‚ เชฌเชพเชฌเชค เช›เซ‡? เชญเชพเชทเชพเช“เชฎเชพเช‚ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช—, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชตเชฟเชงเซ‡เชฏเชพเชคเซเชฎเช•, เชคเซ‡ เชฐเชšเชจเชพเชจเซ‡ เชตเชพเชฐเช‚เชตเชพเชฐ เชตเชฐเซเชฃเชตเชตเชพ เชฎเชพเชŸเซ‡ เชเช•เชฆเชฎ เชฒเชพเช•เซเชทเชฃเชฟเช• เช›เซ‡ - เชคเซ‡เชจเชพ เช†เชณเชธเซ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เชธเชพเชฅเซ‡ เช•เชฎเซเชชเชพเช‡เชฒเชฐ เชฌเชงเซเช‚ เชœ เชธเชฎเชœเซ€ เชถเช•เชถเซ‡ เช…เชจเซ‡ เชชเซ‹เชคเซ‡ เช•เชฐเชถเซ‡. เชญเชพเชทเชพเชฎเชพเช‚ เชกเซ‡เชŸเชพ เชธเซ€เชฐเซ€เชฏเชฒเชพเช‡เชเซ‡เชถเชจ เชœเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡ เชคเซ‡ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เช›เซ‡: เชคเซ‡ เชซเช•เซเชค เชตเชฐเซเชฃเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซเช‚ เช›เซ‡ เชฏเชพเชฆเซ€, เชเชŸเชฒเซ‡ เช•เซ‡ เชฌเซ‡ เชคเชคเซเชตเซ‹เชจเซเช‚ เชฎเชพเชณเช–เซเช‚ - เชชเซเชฐเชฅเชฎ เชกเซ‡เชŸเชพ เชคเชคเซเชต เช›เซ‡, เชฌเซ€เชœเซเช‚ เช เชœ เชฎเชพเชณเช–เซเช‚ เช›เซ‡ เช…เชฅเชตเชพ เชชเซ‚เช‚เช›เชกเซ€ เชฎเชพเชŸเซ‡ เช–เชพเชฒเซ€ เชœเช—เซเชฏเชพ เช›เซ‡ (เชชเซ‡เช• (cons) เชฒเชฟเชธเซเชชเชฎเชพเช‚). เชชเชฐเช‚เชคเซ เช† เชฆเซ‡เช–เซ€เชคเซ€ เชฐเซ€เชคเซ‡ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡ เชฆเชฐเซ‡เช• เชคเชคเซเชต เชคเซ‡เชจเชพ เชชเซเชฐเช•เชพเชฐเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชตเชงเชพเชฐเชพเชจเชพ 4 เชฌเชพเช‡เชŸเซเชธ (เชŸเซ€เชเชฒเชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ CRC32) เช–เชฐเซเชšเซ‡ เช›เซ‡. เชเชฐเซ‡ เชชเชฃ เชธเชฐเชณเชคเชพเชฅเซ€ เชตเชฐเซเชฃเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡ เชจเชฟเชถเซเชšเชฟเชค เช•เชฆ, เชชเชฐเช‚เชคเซ เช…เช—เชพเช‰เชฅเซ€ เช…เชœเซเชžเชพเชค เชฒเช‚เชฌเชพเชˆเชจเชพ เชเชฐเซ‡เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช…เชฎเซ‡ เชคเซ‹เชกเซ€ เชจเชพเช–เซ€เช เช›เซ€เช.

เชคเซ‡เชฅเซ€, TL เชตเซ‡เช•เซเชŸเชฐเชจเซ‡ เช†เช‰เชŸเชชเซเชŸ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชคเซเช‚ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เชคเซ‡เชจเซ‡ เชฌเชพเชœเซ เชชเชฐ เช‰เชฎเซ‡เชฐเชตเชพเชจเซเช‚ เชนเชคเซเช‚. เช†เช–เชฐเซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เช•เชนเซ‡ เช›เซ‡:

เชธเซ€เชฐเซ€เชฏเชฒเชพเช‡เชเซ‡เชถเชจ เชนเช‚เชฎเซ‡เชถเชพ เชธเชฎเชพเชจ เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐ โ€œเชตเซ‡เช•เซเชŸเชฐโ€ (const 0x1cb5c415 = crc32(โ€œvector t:Type # [ t ] = Vector tโ€) เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡ เชชเซเชฐเช•เชพเชฐ t เชจเชพ เชšเชฒเชจเชพ เชšเซ‹เช•เซเช•เชธ เชฎเซ‚เชฒเซเชฏ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชจเชฅเซ€.

เชตเซˆเช•เชฒเซเชชเชฟเช• เชชเชฐเชฟเชฎเชพเชฃ t เชจเซเช‚ เชฎเซ‚เชฒเซเชฏ เชธเซ€เชฐเซ€เชฏเชฒเชพเช‡เชเซ‡เชถเชจเชฎเชพเช‚ เชธเชพเชฎเซ‡เชฒ เชจเชฅเซ€ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชชเชฐเชฟเชฃเชพเชฎเชจเชพ เชชเซเชฐเช•เชพเชฐเชฎเชพเช‚เชฅเซ€ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡ (เชนเช‚เชฎเซ‡เชถเชพ เชกเซ€เชธเซ€เชฐเชฟเชฏเชฒเชพเช‡เชเซ‡เชถเชจ เชชเชนเซ‡เชฒเชพ เชœเชพเชฃเซ€เชคเซเช‚ เช›เซ‡).

เชจเชœเซ€เช•เชฅเซ€ เชœเซเช“: vector {t:Type} # [ t ] = Vector t - เชชเชฃ เช•เซเชฏเชพเช‚เชฏ เชจเชฅเซ€ เช† เชตเซเชฏเชพเช–เซเชฏเชพ เชชเซ‹เชคเซ‡ เช•เชนเซ‡เชคเซ€ เชจเชฅเซ€ เช•เซ‡ เชชเซเชฐเชฅเชฎ เชธเช‚เช–เซเชฏเชพ เชตเซ‡เช•เซเชŸเชฐเชจเซ€ เชฒเช‚เชฌเชพเชˆ เชœเซ‡เชŸเชฒเซ€ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช! เช…เชจเซ‡ เชคเซ‡ เช•เซเชฏเชพเช‚เชฏเชฅเซ€ เช†เชตเชคเซเช‚ เชจเชฅเซ€. เช† เชเช• เช†เชชเซ‡เชฒ เช›เซ‡ เชœเซ‡เชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฐเชพเช–เชตเชพเชจเซ€ เช…เชจเซ‡ เชคเชฎเชพเชฐเชพ เชนเชพเชฅเชฅเซ€ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช…เชจเซเชฏเชคเซเชฐ, เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชชเชฃ เชชเซเชฐเชฎเชพเชฃเชฟเช•เชชเชฃเซ‡ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เชชเซเชฐเช•เชพเชฐ เชตเชพเชธเซเชคเชตเชฟเช• เชจเชฅเซ€:

เชตเซ‡เช•เซเชŸเชฐ เชŸเซ€ เชชเซ‹เชฒเซ€เชฎเซ‹เชฐเซเชซเชฟเช• เชธเซเชฏเซเชกเซ‹เชŸเชพเช‡เชช เช เชเช• "เชชเซเชฐเช•เชพเชฐ" เช›เซ‡ เชœเซ‡เชจเซเช‚ เชฎเซ‚เชฒเซเชฏ เช เช•เซ‹เชˆเชชเชฃ เชชเซเชฐเช•เชพเชฐเชจเชพ เชŸเซ€เชจเชพ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ‹ เช•เซเชฐเชฎ เช›เซ‡, เช•เซเชฏเชพเช‚ เชคเซ‹ เชฌเซ‹เช•เซเชธเชตเชพเชณเซ€ เช…เชฅเชตเชพ เชเช•เชฆเชฎ.

... เชชเชฐเช‚เชคเซ เชคเซ‡เชจเชพ เชชเชฐ เชงเซเชฏเชพเชจ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เช•เชฐเชคเซเช‚ เชจเชฅเซ€. เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡, เช—เชฃเชฟเชคเชจเชพ เชธเซเชŸเซเชฐเซ‡เชšเชฟเช‚เช—เชฅเซ€ เช•เช‚เชŸเชพเชณเซ€ เช—เชฏเชพ เช›เซ‹ (เช•เชฆเชพเชš เชคเชฎเชจเซ‡ เชฏเซเชจเชฟเชตเชฐเซเชธเชฟเชŸเซ€เชจเชพ เช•เซ‹เชฐเซเชธเชฎเชพเช‚เชฅเซ€ เชชเชฃ เชœเชพเชฃเชคเชพ เชนเชถเซ‡), เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชนเชพเชฐ เชฎเชพเชจเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซ‹ เช›เซ‹ เช…เชจเซ‡ เชตเชพเชธเซเชคเชตเชฎเชพเช‚ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเชตเซเช‚ เชคเซ‡ เชœเซเช“ เช›เซ‹, เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเชพเชฐเชพ เชฎเช—เชœเชฎเชพเช‚ เช›เชพเชช เชฐเชนเซ‡ เช›เซ‡ เช•เซ‡ เช† เช—เช‚เชญเซ€เชฐ เช›เซ‡. เชฎเซ‚เชณเชฎเชพเช‚ เช—เชฃเชฟเชค, เชคเซ‡ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เช•เซ‚เชฒ เชฒเซ‹เช•เซ‹ (เชฌเซ‡ เช—เชฃเชฟเชคเชถเชพเชธเซเชคเซเชฐเซ€เช“ - ACM เชตเชฟเชœเซ‡เชคเชพ) เชฆเซเชตเชพเชฐเชพ เชถเซ‹เชงเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚, เช…เชจเซ‡ เชฎเชพเชคเซเชฐ เช•เซ‹เชˆเช เชจเชนเซ€เช‚. เชงเซเชฏเซ‡เชฏ - เชฌเชคเชพเชตเชตเชพเชจเซเช‚ - เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซเช‚ เช›เซ‡.

เชฎเชพเชฐเซเช— เชฆเซเชตเชพเชฐเชพ, เชธเช‚เช–เซเชฏเชพ เชตเชฟเชถเซ‡. เชšเชพเชฒเซ‹ เชคเชฎเชจเซ‡ เชคเซ‡ เชฏเชพเชฆ เช…เชชเชพเชตเซ€เช # เชคเซ‡ เชเช• เชธเชฎเชพเชจเชพเชฐเซเชฅเซ€ เช›เซ‡ nat, เช•เซเชฆเชฐเชคเซ€ เชธเช‚เช–เซเชฏเชพ:

เชคเซเชฏเชพเช‚ เชชเซเชฐเช•เชพเชฐเชจเชพ เชธเชฎเซ€เช•เชฐเชฃเซ‹ เช›เซ‡ (เชŸเชพเช‡เชช-เชเช•เซเชธเชชเซเชฐ) เช…เชจเซ‡ เชธเช‚เช–เซเชฏเชพเชคเซเชฎเช• เชธเชฎเซ€เช•เชฐเชฃเซ‹ (nat-expr). เชœเซ‹ เช•เซ‡, เชคเซ‡เช“ เชธเชฎเชพเชจ เชฐเซ€เชคเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

type-expr ::= expr
nat-expr ::= expr

เชชเชฐเช‚เชคเซ เชตเซเชฏเชพเช•เชฐเชฃเชฎเชพเช‚ เชคเซ‡เช“เชจเซเช‚ เชตเชฐเซเชฃเชจ เช เชœ เชฐเซ€เชคเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. เช† เชคเชซเชพเชตเชค เชซเชฐเซ€เชฅเซ€ เชฏเชพเชฆ เชฐเชพเช–เชตเซ‹ เชœเซ‹เชˆเช เช…เชจเซ‡ เชนเชพเชฅ เชฆเซเชตเชพเชฐเชพ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเซ‹ เชœเซ‹เชˆเช.

เชธเชพเชฐเซเช‚, เชนเชพ, เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸ เชชเซเชฐเช•เชพเชฐเซ‹ (vector<int>, vector<User>) เชชเชพเชธเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เช“เชณเช–เช•เชฐเซเชคเชพ เช›เซ‡ (#1cb5c415), เชเชŸเชฒเซ‡ เช•เซ‡ เชœเซ‹ เชคเชฎเซ‡ เชœเชพเชฃเซ‹ เช›เซ‹ เช•เซ‡ เช•เซ‰เชฒเชจเซ€ เชœเชพเชนเซ‡เชฐเชพเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡

users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;

เชคเซ‹ เชชเช›เซ€ เชคเชฎเซ‡ เชนเชตเซ‡ เชฎเชพเชคเซเชฐ เชเช• เชตเซ‡เช•เซเชŸเชฐเชจเซ€ เชจเชนเซ€เช‚, เชชเชฃ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเชพ เชตเซ‡เช•เซเชŸเชฐเชจเซ€ เชฐเชพเชน เชœเซ‹เชˆ เชฐเชนเซเชฏเชพ เช›เซ‹. เชตเชงเซ เชธเซเชชเชทเซเชŸ เชฐเซ€เชคเซ‡, เชœเซ‹เชˆเช เชฐเชพเชน เชœเซเช“ - เชตเชพเชธเซเชคเชตเชฟเช• เช•เซ‹เชกเชฎเชพเช‚, เชฆเชฐเซ‡เช• เชคเชคเซเชต, เชœเซ‹ เชเช•เชฆเชฎ เชชเซเชฐเช•เชพเชฐ เชจ เชนเซ‹เชฏ เชคเซ‹, เชเช• เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐ เชนเชถเซ‡, เช…เชจเซ‡ เช…เชฎเชฒเซ€เช•เชฐเชฃเชฎเชพเช‚ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชคเซ‡ เชคเชชเชพเชธเชตเซเช‚ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡ - เชชเชฐเช‚เชคเซ เช…เชฎเชจเซ‡ เช† เชตเซ‡เช•เซเชŸเชฐเชจเชพ เชฆเชฐเซ‡เช• เช˜เชŸเช•เชฎเชพเช‚ เชฌเชฐเชพเชฌเชฐ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ. เชคเซ‡ เชชเซเชฐเช•เชพเชฐ? เชœเซ‹ เชคเซ‡ เช•เซ‹เชˆ เชชเซเชฐเช•เชพเชฐเชจเซเช‚ PHP เชนเซ‹เชฏ, เชœเซ‡เชฎเชพเช‚ เชเชฐเซ‡ เชตเชฟเชตเชฟเชง เชคเชคเซเชตเซ‹เชฎเชพเช‚ เชตเชฟเชตเชฟเชง เชชเซเชฐเช•เชพเชฐเซ‹ เชธเชฎเชพเชตเซ€ เชถเช•เซ‡?

เช† เชฌเชฟเช‚เชฆเซเช เชคเชฎเซ‡ เชตเชฟเชšเชพเชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ‹ - เชถเซเช‚ เช†เชตเชพ TL เชœเชฐเซ‚เชฐเซ€ เช›เซ‡? เช•เชฆเชพเชš เช•เชพเชฐเซเชŸ เชฎเชพเชŸเซ‡ เชฎเชพเชจเชต เชธเซ€เชฐเซ€เชฏเชฒเชพเช‡เชเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชถเช•เซเชฏ เชนเชถเซ‡, เชคเซ‡ เชœ เชชเซเชฐเซ‹เชŸเซ‹เชฌเชซ เชœเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เช›เซ‡? เชคเซ‡ เชธเชฟเชฆเซเชงเชพเช‚เชค เชนเชคเซ‹, เชšเชพเชฒเซ‹ เชชเซเชฐเซ‡เช•เซเชŸเชฟเชธ เชœเซ‹เชˆเช.

เช•เซ‹เชกเชฎเชพเช‚ เชนเชพเชฒเชจเชพ TL เช…เชฎเชฒเซ€เช•เชฐเชฃเซ‹

เชฆเซเชฐเซ‹เชตเชจเชพ เชถเซ‡เชฐเชจเชพ เชตเซ‡เชšเชพเชฃ เชธเชพเชฅเซ‡เชจเซ€ เชชเซเชฐเช–เซเชฏเชพเชค เช˜เชŸเชจเชพเช“ เชชเชนเซ‡เชฒเชพ เชชเชฃ TL เชจเซ‹ เชœเชจเซเชฎ VKontakte เชจเชพ เชŠเช‚เชกเชพเชฃเซ‹เชฎเชพเช‚ เชฅเชฏเซ‹ เชนเชคเซ‹ เช…เชจเซ‡ (เช•เชฆเชพเชš), เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎเชจเซ‹ เชตเชฟเช•เชพเชธ เชถเชฐเซ‚ เชฅเชฏเซ‹ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚ เชœ. เช…เชจเซ‡ เช“เชชเชจ เชธเซ‹เชฐเซเชธเชฎเชพเช‚ เชชเซเชฐเชฅเชฎ เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ‹ เชธเซเชฐเซ‹เชค เช•เซ‹เชก เชคเชฎเชจเซ‡ เช˜เชฃเซ€ เชฐเชฎเซเชœเซ€ เช•เซเชฐเซ‰เชš เชฎเชณเซ€ เชถเช•เซ‡ เช›เซ‡. เช…เชจเซ‡ เชญเชพเชทเชพ เชชเซ‹เชคเซ‡ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎเชฎเชพเช‚ เช›เซ‡ เชคเซ‡เชจเชพ เช•เชฐเชคเชพเช‚ เชตเชงเซ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฐเซ€เชคเซ‡ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชธเซเช•เซ€เชฎเชฎเชพเช‚ เชนเซ‡เชถเชจเซ‹ เชฌเชฟเชฒเช•เซเชฒ เช‰เชชเชฏเซ‹เช— เชฅเชคเซ‹ เชจเชฅเซ€ (เชเชŸเชฒเซ‡ โ€‹โ€‹เช•เซ‡ เชฌเชฟเชฒเซเชŸ-เช‡เชจ เชธเซเชฏเซเชกเซ‹เชŸเชพเช‡เชช (เชตเซ‡เช•เซเชŸเชฐเชจเซ€ เชœเซ‡เชฎ) เชตเชฟเชšเชฒเชฟเชค เชตเชฐเซเชคเชจ เชธเชพเชฅเซ‡). เช…เชฅเชตเชพ

Templates are not used now. Instead, the same universal constructors (for example, vector {t:Type} [t] = Vector t) are used w

เชชเชฐเช‚เชคเซ เชšเชพเชฒเซ‹ เชตเชฟเชšเชพเชฐ เช•เชฐเซ€เช, เชธเช‚เชชเซ‚เชฐเซเชฃเชคเชพ เชฎเชพเชŸเซ‡, เชŸเซเชฐเซ‡เชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเซ‡เชฅเซ€ เชตเชพเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชœเชพเชฏเชจเซเชŸ เช“เชซ เชฅเซ‹เชŸเชจเซ€ เช‰เชคเซเช•เซเชฐเชพเช‚เชคเชฟ.

#define ZHUKOV_BYTES_HACK

#ifdef ZHUKOV_BYTES_HACK

/* dirty hack for Zhukov request */

เช…เชฅเชตเชพ เช† เชธเซเช‚เชฆเชฐ:

    static const char *reserved_words_polymorhic[] = {

      "alpha", "beta", "gamma", "delta", "epsilon", "zeta", "eta", "theta", NULL

      };

เช† เชŸเซเช•เชกเซ‹ เชจเชฎเซ‚เชจเชพเช“ เชตเชฟเชถเซ‡ เช›เซ‡ เชœเซ‡เชฎ เช•เซ‡:

intHash {alpha:Type} vector<coupleInt<alpha>> = IntHash<alpha>;

เช† int - Type เชœเซ‹เชกเซ€เช“เชจเชพ เชตเซ‡เช•เซเชŸเชฐ เชคเชฐเซ€เช•เซ‡ เชนเซ‡เชถเชฎเซ‡เชช เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸ เชชเซเชฐเช•เชพเชฐเชจเซ€ เชตเซเชฏเชพเช–เซเชฏเชพ เช›เซ‡. C++ เชฎเชพเช‚ เชคเซ‡ เช•เช‚เชˆเช• เช†เชจเชพ เชœเซ‡เชตเซเช‚ เชฆเซ‡เช–เชพเชถเซ‡:

    template <T> class IntHash {
      vector<pair<int,T>> _map;
    }

เชคเซ‡เชฅเซ€, alpha - เช•เซ€เชตเชฐเซเชก! เชชเชฐเช‚เชคเซ เชฎเชพเชคเซเชฐ C++ เชฎเชพเช‚ เชคเชฎเซ‡ T เชฒเช–เซ€ เชถเช•เซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ เชคเชฎเชพเชฐเซ‡ เช†เชฒเซเชซเชพ, เชฌเซ€เชŸเชพ เชฒเช–เชตเซเช‚ เชœเซ‹เชˆเช... เชชเชฐเช‚เชคเซ 8 เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐเชฅเซ€ เชตเชงเซ เชจเชนเซ€เช‚, เชคเซเชฏเชพเช‚ เชœ เช•เชพเชฒเซเชชเชจเชฟเช• เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡. เชเชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เชเช• เชธเชฎเชฏเซ‡ เชธเซ‡เชจเซเชŸ เชชเซ€เชŸเชฐเซเชธเชฌเชฐเซเช—เชฎเชพเช‚ เช†เชจเชพ เชœเซ‡เชตเชพ เช•เซ‡เชŸเชฒเชพเช• เชธเช‚เชตเชพเชฆเซ‹ เชฅเชฏเชพ เชนเชคเชพ:

-- ะะฐะดะพ ัะดะตะปะฐั‚ัŒ ะฒ TL ัˆะฐะฑะปะพะฝั‹
-- ะ‘ะป... ะัƒ ะฟัƒัั‚ัŒ ะฟะฐั€ะฐะผะตั‚ั€ั‹ ะทะพะฒัƒั‚ ะฐะปัŒั„ะฐ, ะฑะตั‚ะฐ,... ะšะฐะบะธะต ั‚ะฐะผ ะตั‰ั‘ ะฑัƒะบะฒั‹ ะตัั‚ัŒ... ะž, ั‚ัั‚ะฐ!
-- ะ“ั€ะฐะผะผะฐั‚ะธะบะฐ? ะัƒ ะฟะพั‚ะพะผ ะฝะฐะฟะธัˆะตะผ

-- ะกะผะพั‚ั€ะธั‚ะต, ะบะฐะบะพะน ั ัะธะฝั‚ะฐะบัะธั ะฟั€ะธะดัƒะผะฐะป ะดะปั ัˆะฐะฑะปะพะฝะพะฒ ะธ ะฒะตะบั‚ะพั€ะฐ!
-- ะขั‹ ะดะพะปะฑะฐะฝัƒะปัั, ะบะฐะบ ะผั‹ ัั‚ะพ ะฟะฐั€ัะธั‚ัŒ ะฑัƒะดะตะผ?
-- ะ”ะฐ ะฝะต ััั‹ั‚ะต, ะพะฝ ั‚ะฐะผ ะพะดะธะฝ ะฒ ัั…ะตะผะต, ะทะฐั…ะฐั€ะบะพะดะธั‚ัŒ -- ะธ ะพะบ

เชชเชฐเช‚เชคเซ เช† "เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡" TL เชจเชพ เชชเซเชฐเชฅเชฎ เชชเซเชฐเช•เชพเชถเชฟเชค เช…เชฎเชฒเซ€เช•เชฐเชฃ เชตเชฟเชถเซ‡ เชนเชคเซเช‚. เชšเชพเชฒเซ‹ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เช•เซเชฒเชพเชฏเช‚เชŸเชฎเชพเช‚ เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเชˆเช.

เชตเซ‡เชธเชฟเชฒเซ€เชจเซ‡ เชถเชฌเซเชฆ:

เชตเซ‡เชธเชฟเชฒเซ€, [09.10.18 17:07] เชธเซŒเชฅเซ€ เชตเชงเซ, เช—เชฐเซเชฆเชญ เช—เชฐเชฎ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡เช“เช เช…เชฎเซ‚เชฐเซเชคเชคเชพเชจเซ‹ เชธเชฎเซ‚เชน เชฌเชจเชพเชตเซเชฏเซ‹, เช…เชจเซ‡ เชชเช›เซ€ เชคเซ‡เชจเชพ เชชเชฐ เชฌเซ‹เชฒเซเชŸ เชฎเชพเชฐเซเชฏเซ‹, เช…เชจเซ‡ เช•เซ‹เชก เชœเชจเชฐเซ‡เชŸเชฐเชจเซ‡ เช•เซเชฐเซ‡เชšเชฅเซ€ เชขเชพเช‚เช•เซ€ เชฆเซ€เชงเซ‹.
เชชเชฐเชฟเชฃเชพเชฎเซ‡, เชชเซเชฐเชฅเชฎ dock pilot.jpg เชฅเซ€
เชชเช›เซ€ เช•เซ‹เชก dzhekichan.webp เชฅเซ€

เช…เชฒเชฌเชคเซเชค, เชเชฒเซเช—เซ‹เชฐเชฟเชงเชฎเซเชธ เช…เชจเซ‡ เช—เชฃเชฟเชคเชฅเซ€ เชชเชฐเชฟเชšเชฟเชค เชฒเซ‹เช•เซ‹ เชชเชพเชธเซ‡เชฅเซ€, เช…เชฎเซ‡ เช…เชชเซ‡เช•เซเชทเชพ เชฐเชพเช–เซ€ เชถเช•เซ€เช เช•เซ‡ เชคเซ‡เช“เช Aho, Ullmann เชตเชพเช‚เชšเซเชฏเซเช‚ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชจเชพ DSL เช•เชฎเซเชชเชพเช‡เชฒเชฐเซเชธ เชฒเช–เชตเชพ เชฎเชพเชŸเซ‡ เชฆเชพเชฏเช•เชพเช“เชฅเซ€ เช‰เชฆเซเชฏเซ‹เช—เชฎเชพเช‚ เชตเชพเชธเซเชคเชตเชฟเช• เชงเซ‹เชฐเชฃ เชฌเชจเซ€ เช—เชฏเซ‡เชฒเชพ เชธเชพเชงเชจเซ‹เชฅเซ€ เชคเซ‡เช“ เชชเชฐเชฟเชšเชฟเชค เช›เซ‡, เช–เชฐเซเช‚ เชจเซ‡?

เชฆเซเชตเชพเชฐเชพ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ-เช•เซเชฒเซ€ เชตเชฟเชŸเชพเชฒเซ€ เชตเชพเชฒเซเชŸเชฎเซ‡เชจ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชคเซ‡เชจเซ€ (cli) เชธเซ€เชฎเชพเช“เชจเซ€ เชฌเชนเชพเชฐ TLO เชซเซ‹เชฐเซเชฎเซ‡เชŸเชจเซ€ เช˜เชŸเชจเชพ เชชเชฐเชฅเซ€ เชธเชฎเชœเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชŸเซ€เชฎเชจเชพ เชธเชญเซเชฏ - เชนเชตเซ‡ TL เชชเชพเชฐเซเชธเชฟเช‚เช— เชฎเชพเชŸเซ‡ เชเช• เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ เชซเชพเชณเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡. เช…เชฒเช—เชฅเซ€, เชคเซ‡เชฃเซ€เชจเซ€ เช›เชพเชช เชถเซเช‚ เช›เซ‡ TL เชชเชพเชฐเซเชธเชฐ? ..

16.12 04:18 เชตเซ‡เชธเชฟเชฒเซ€: เชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เช•เซ‹เชˆเช lex+yaccเชฎเชพเช‚ เชฎเชพเชธเซเชŸเชฐ เชจเชฅเซ€
16.12 04:18 เชตเซ‡เชธเชฟเชฒเซ€: เชนเซเช‚ เชคเซ‡เชจเซ‡ เช…เชจเซเชฏเชฅเชพ เชธเชฎเชœเชพเชตเซ€ เชถเช•เชคเซ‹ เชจเชฅเซ€
16.12 04:18 เชตเซ‡เชธเชฟเชฒเซ€: เชธเชพเชฐเซเช‚, เช…เชฅเชตเชพ เชคเซ‡เชฎเชจเซ‡ VK เชฎเชพเช‚ เชฒเชพเช‡เชจเชจเซ€ เชธเช‚เช–เซเชฏเชพ เชฎเชพเชŸเซ‡ เชšเซ‚เช•เชตเชฃเซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€
16.12 04:19 เชตเซ‡เชธเชฟเชฒเซ€: 3k+ เชฒเซ€เชŸเซ€เช“ เชตเช—เซ‡เชฐเซ‡.<censored> เชชเชพเชฐเซเชธเชฐเชจเซ‡ เชฌเชฆเชฒเซ‡

เช•เชฆเชพเชš เช…เชชเชตเชพเชฆ? เชšเชพเชฒเซ‹ เชœเซ‹เชˆเช เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเซ‡ เช›เซ‡ เช† เช…เชงเชฟเช•เซƒเชค เช•เซเชฒเชพเชฏเชจเซเชŸ เช›เซ‡ - เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชกเซ‡เชธเซเช•เชŸเซ‹เชช:

    nametype = re.match(r'([a-zA-Z.0-9_]+)(#[0-9a-f]+)?([^=]*)=s*([a-zA-Z.<>0-9_]+);', line);
    if (not nametype):
      if (not re.match(r'vector#1cb5c415 {t:Type} # [ t ] = Vector t;', line)):
         print('Bad line found: ' + line);

เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ 1100+ เชฒเซ€เชŸเซ€เช“, เช•เซ‡เชŸเชฒเชพเช• เชจเชฟเชฏเชฎเชฟเชค เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเช“ + เชตเซ‡เช•เซเชŸเชฐ เชœเซ‡เชตเชพ เชตเชฟเชถเชฟเชทเซเชŸ เช•เซ‡เชธ, เชœเซ‡, เช…เชฒเชฌเชคเซเชค, TL เชตเชพเช•เซเชฏเชฐเชšเชจเชพ เชฎเซเชœเชฌ เชนเซ‹เชตเชพ เชœเซ‹เชˆเช เชคเซ‡ เชฐเซ€เชคเซ‡ เชฏเซ‹เชœเชจเชพเชฎเชพเช‚ เชœเชพเชนเซ‡เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡เช“ เชคเซ‡เชจเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช† เชตเชพเช•เซเชฏเชฐเชšเชจเชพ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡... เชชเซเชฐเชถเซเชจ เช เชŠเชญเซ‹ เชฅเชพเชฏ เช›เซ‡ เช•เซ‡ เช† เชฌเชงเซเช‚ เชšเชฎเชคเซเช•เชพเชฐ เช•เซ‡เชฎ เชนเชคเซเช‚?ะธเชœเซ‹ เช•เซ‹เชˆ เชชเชฃ เชฐเซ€เชคเซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เช…เชจเซเชธเชพเชฐ เชคเซ‡เชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเชตเชพ เชœเชˆ เชฐเชนเซเชฏเซเช‚ เชจเชฅเซ€ เชคเซ‹ เชคเซ‡ เชตเชงเซ เชธเซเชคเชฐเชตเชพเชณเซ€ เช›เซ‡?!

เชฌเชพเชฏ เชง เชตเซ‡... เชฏเชพเชฆ เช›เซ‡ เช†เชชเชฃเซ‡ CRC32 เชšเซ‡เช•เชฟเช‚เช— เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€ เชนเชคเซ€? เชคเซ‡เชฅเซ€, เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชกเซ‡เชธเซเช•เชŸเซ‹เชช เช•เซ‹เชก เชœเชจเชฐเซ‡เชŸเชฐเชฎเชพเช‚ เชคเซ‡ เชชเซเชฐเช•เชพเชฐเซ‹ เชฎเชพเชŸเซ‡ เช…เชชเชตเชพเชฆเซ‹เชจเซ€ เชธเซ‚เชšเชฟ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ‡เชฒ CRC32 เชฎเซ‡เชณ เช–เชพเชคเซ‹ เชจเชฅเซ€ เชกเชพเชฏเชพเช—เซเชฐเชพเชฎเชฎเชพเช‚ เชฆเชฐเซเชถเชพเชตเซ‡เชฒ เชเช• เชธเชพเชฅเซ‡!

เชตเซ‡เชธเชฟเชฒเซ€, [18.12/22 49:XNUMX] เช…เชจเซ‡ เช…เชนเซ€เช‚ เชนเซเช‚ เชตเชฟเชšเชพเชฐเซ€เชถ เช•เซ‡ เช†เชตเชพ TLเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ
เชœเซ‹ เชนเซเช‚ เชตเซˆเช•เชฒเซเชชเชฟเช• เช…เชฎเชฒเซ€เช•เชฐเชฃเซ‹ เชธเชพเชฅเซ‡ เช—เชกเชฌเชก เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚, เชคเซ‹ เชนเซเช‚ เชฒเชพเช‡เชจ เชฌเซเชฐเซ‡เช•เซเชธ เชฆเชพเช–เชฒ เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ€เชถ, เช…เชกเชงเชพ เชตเชฟเชถเซเชฒเซ‡เชทเช•เซ‹ เชฌเชนเซ-เชฒเชพเช‡เชจ เชตเซเชฏเชพเช–เซเชฏเชพเช“ เชชเชฐ เชคเซ‚เชŸเซ€ เชœเชถเซ‡
tdesktop, เชœเซ‹เช•เซ‡, เชชเชฃ

เชตเชจ-เชฒเชพเช‡เชจเชฐ เชตเชฟเชถเซ‡เชจเซ‹ เชฎเซเชฆเซเชฆเซ‹ เชฏเชพเชฆ เชฐเชพเช–เซ‹, เช…เชฎเซ‡ เชฅเซ‹เชกเซ€ เชตเชพเชฐ เชชเช›เซ€ เชคเซ‡เชจเชพ เชชเชฐ เชชเชพเช›เชพ เช†เชตเซ€เชถเซเช‚.

เช เซ€เช• เช›เซ‡, เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ-เช•เซเชฒเซ€ เช เชฌเชฟเชจเชธเชคเซเชคเชพเชตเชพเชฐ เช›เซ‡, เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชกเซ‡เชธเซเช•เชŸเซ‹เชช เชธเชคเซเชคเชพเชตเชพเชฐ เช›เซ‡, เชชเชฐเช‚เชคเซ เช…เชจเซเชฏเชจเซเช‚ เชถเซเช‚? เช•เซ‹เชฃ เชœเชพเชฃเซ‡ เช›เซ‡?.. เชเชจเซเชกเซเชฐเซ‹เช‡เชก เช•เซเชฒเชพเชฏเช‚เชŸ เช•เซ‹เชกเชฎเชพเช‚ เช•เซ‹เชˆ เชธเซเช•เซ€เชฎเชพ เชชเชพเชฐเซเชธเชฐ เชœ เชจเชนเซ‹เชคเซเช‚ (เชœเซ‡ เช“เชชเชจ เชธเซ‹เชฐเซเชธ เชตเชฟเชถเซ‡ เชชเซเชฐเชถเซเชจเซ‹ เช‰เชญเชพ เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เช† เชฌเซ€เชœเชพ เชญเชพเช— เชฎเชพเชŸเซ‡ เช›เซ‡), เชชเชฐเช‚เชคเซ เช•เซ‹เชกเชจเชพ เช…เชจเซเชฏ เช•เซ‡เชŸเชฒเชพเช• เชฐเชฎเซเชœเซ€ เชŸเซเช•เชกเชพเช“ เชนเชคเชพ, เชชเชฐเช‚เชคเซ เชคเซ‡เชจเชพ เชชเชฐ เชตเชงเซ เชจเซ€เชšเซ‡ เชชเซ‡เชŸเชพ เชตเชฟเชญเชพเช—.

เช•เซเชฐเชฎเชพเช‚เช•เชจ เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เช…เชจเซเชฏ เช•เชฏเชพ เชชเซเชฐเชถเซเชจเซ‹ เช‰เชญเชพ เช•เชฐเซ‡ เช›เซ‡? เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเซ‡เช“เช เช˜เชฃเซ€ เชฌเชงเซ€ เชตเชธเซเชคเซเช“ เช•เชฐเซ€, เช…เชฒเชฌเชคเซเชค, เชฌเซ€เชŸ เชซเซ€เชฒเซเชกเซเชธ เช…เชจเซ‡ เชถเชฐเชคเซ€ เชซเซ€เชฒเซเชกเซเชธ เชธเชพเชฅเซ‡:

เชตเซ‡เชธเชฟเชฒเซ€: flags.0? true
เชฎเชคเชฒเชฌ เช•เซ‡ เช•เซเชทเซ‡เชคเซเชฐ เชนเชพเชœเชฐ เช›เซ‡ เช…เชจเซ‡ เชœเซ‹ เชงเซเชตเชœ เชธเซ‡เชŸ เช•เชฐเซ‡เชฒ เชนเซ‹เชฏ เชคเซ‹ เชคเซ‡ เชธเชพเชšเซเช‚ เช›เซ‡

เชตเซ‡เชธเชฟเชฒเซ€: flags.1? int
เชฎเชคเชฒเชฌ เช•เซ‡ เช•เซเชทเซ‡เชคเซเชฐ เชนเชพเชœเชฐ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชกเซ€เชธเซ€เชฐเชฟเชฏเชฒเชพเชˆเช เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡

เชตเซ‡เชธเชฟเชฒเซ€: เช—เชฐเซเชฆเชญ, เชคเชฎเซ‡ เชถเซเช‚ เช•เชฐเซ€ เชฐเชนเซเชฏเชพเช‚ เช›เซ‹ เชคเซ‡เชจเซ€ เชšเชฟเช‚เชคเชพ เช•เชฐเชถเซ‹ เชจเชนเซ€เช‚!
เชตเซ‡เชธเชฟเชฒเซ€: เชฆเชธเซเชคเชพเชตเซ‡เชœเชฎเชพเช‚ เช•เซเชฏเชพเช‚เช• เชเชตเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช›เซ‡ เช•เซ‡ เชธเชพเชšเซเช‚ เชเช•เชฆเชฎ เชถเซ‚เชจเซเชฏ-เชฒเช‚เชฌเชพเชˆ เชชเซเชฐเช•เชพเชฐ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡เชฎเชจเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเชฎเชพเช‚เชฅเซ€ เช•เช‚เชˆเชชเชฃ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเชตเซเช‚ เช…เชถเช•เซเชฏ เช›เซ‡
เชตเซ‡เชธเชฟเชฒเซ€: เช“เชชเชจ เชธเซ‹เชฐเซเชธ เช…เชฎเชฒเซ€เช•เชฐเชฃเชฎเชพเช‚ เชชเชฃ เช†เชตเซเช‚ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช•เซเชฐเซ‡เชš เช…เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸเชจเซ‹ เชธเชฎเซ‚เชน เช›เซ‡.

เชŸเซ‡เชฒเชฟเชฅเซ‹เชจ เชตเชฟเชถเซ‡ เชถเซเช‚? MTProto เชจเชพ เชตเชฟเชทเชฏ เชคเชฐเชซ เช†เช—เชณ เชœเซ‹เชคเชพ, เชเช• เช‰เชฆเชพเชนเชฐเชฃ - เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃเชฎเชพเช‚ เช†เชตเชพ เชŸเซเช•เชกเชพเช“ เช›เซ‡, เชชเชฐเช‚เชคเซ เชšเชฟเชนเซเชจ % เชคเซ‡ เชซเช•เซเชค "เช†เชชเซ‡เชฒ เชฌเซ‡เชฐ-เชŸเชพเชˆเชชเชจเซ‡ เช…เชจเซเชฐเซ‚เชช" เชคเชฐเซ€เช•เซ‡ เชตเชฐเซเชฃเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. เชจเซ€เชšเซ‡เชจเชพ เช‰เชฆเชพเชนเชฐเชฃเซ‹เชฎเชพเช‚ เช•เชพเช‚ เชคเซ‹ เชญเซ‚เชฒ เช›เซ‡ เช…เชฅเชตเชพ เช•เช‚เชˆเช• เชฌเชฟเชจเชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เซƒเชค เช›เซ‡:

เชตเซ‡เชธเชฟเชฒเซ€, [22.06.18 18:38] เชเช• เชœเช—เซเชฏเชพเช:

msg_container#73f1f8dc messages:vector message = MessageContainer;

เช…เชฒเช— เชฐเซ€เชคเซ‡:

msg_container#73f1f8dc messages:vector<%Message> = MessageContainer;

เช…เชจเซ‡ เช† เชฌเซ‡ เชฎเซ‹เชŸเชพ เชคเชซเชพเชตเชค เช›เซ‡, เชตเชพเชธเซเชคเชตเชฟเช• เชœเซ€เชตเชจเชฎเชพเช‚ เช…เชฎเซเช• เชชเซเชฐเช•เชพเชฐเชจเซ‹ เชจเช—เซเชจ เชตเซ‡เช•เซเชŸเชฐ เช†เชตเซ‡ เช›เซ‡

เชฎเซ‡เช‚ เชเช•เชฆเชฎ เชตเซ‡เช•เซเชŸเชฐ เชตเซเชฏเชพเช–เซเชฏเชพ เชœเซ‹เชˆ เชจเชฅเซ€ เช…เชจเซ‡ เชเช• เชชเชฃ เช†เชตเซ€ เชจเชฅเซ€

เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เชŸเซ‡เชฒเชฟเชฅเซ‹เชจเชฎเชพเช‚ เชนเชพเชฅ เชฆเซเชตเชพเชฐเชพ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡

เชคเซ‡เชฎเชจเชพ เช†เช•เซƒเชคเชฟเชฎเชพเช‚ เชตเซเชฏเชพเช–เซเชฏเชพเชจเซ€ เชŸเชฟเชชเซเชชเชฃเซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ msg_container

เชซเชฐเซ€เชฅเซ€, เชชเซเชฐเชถเซเชจ % เชตเชฟเชถเซ‡ เชฐเชนเซ‡ เช›เซ‡. เชคเซ‡เชจเซเช‚ เชตเชฐเซเชฃเชจ เชจเชฅเซ€.

Vadim Goncharov, [22.06.18 19:22] เช…เชจเซ‡ tdesktop เชฎเชพเช‚?

เชตเซ‡เชธเชฟเชฒเซ€, [22.06.18 19:23] เชชเชฐเช‚เชคเซ เชจเชฟเชฏเชฎเชฟเชค เชเชจเซเชœเชฟเชจเซ‹ เชชเชฐเชจเชพ เชคเซ‡เชฎเชจเชพ TL เชชเชพเชฐเซเชธเชฐ เชฎเซ‹เชŸเซ‡ เชญเชพเช—เซ‡ เช†เชจเซ‡ เช–เชพเชถเซ‡ เชจเชนเซ€เช‚

// parsed manually

TL เชเช• เชธเซเช‚เชฆเชฐ เช…เชฎเซ‚เชฐเซเชค เช›เซ‡, เช•เซ‹เชˆ เชชเชฃ เชคเซ‡เชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชฒเชพเช—เซ เช•เชฐเชคเซเช‚ เชจเชฅเซ€

เช…เชจเซ‡ % เชคเซ‡เชฎเชจเซ€ เชฏเซ‹เชœเชจเชพเชจเชพ เชธเช‚เชธเซเช•เชฐเชฃเชฎเชพเช‚ เชจเชฅเซ€

เชชเชฐเช‚เชคเซ เช…เชนเซ€เช‚ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชชเซ‹เชคเซ‡ เชตเชฟเชฐเซ‹เชงเชพเชญเชพเชธเซ€ เช›เซ‡, เชคเซ‡เชฅเซ€ idk

เชคเซ‡ เชตเซเชฏเชพเช•เชฐเชฃเชฎเชพเช‚ เชœเซ‹เชตเชพ เชฎเชณเซเชฏเซเช‚ เชนเชคเซเช‚, เชคเซ‡เช“ เชซเช•เซเชค เช…เชฐเซเชฅเชถเชพเชธเซเชคเซเชฐเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชตเชพเชจเซเช‚ เชญเซ‚เชฒเซ€ เช—เชฏเชพ เชนเซ‹เชค

เชคเชฎเซ‡ TL เชชเชฐ เชฆเชธเซเชคเชพเชตเซ‡เชœ เชœเซ‹เชฏเซ‹ เช›เซ‡, เชคเชฎเซ‡ เช…เชกเชงเชพ เชฒเชฟเชŸเชฐ เชตเชฟเชจเชพ เชคเซ‡เชจเซ‡ เชถเซ‹เชงเซ€ เชถเช•เชคเชพ เชจเชฅเซ€

"เชธเชพเชฐเซเช‚, เชšเชพเชฒเซ‹ เช•เชนเซ€เช," เช…เชจเซเชฏ เชตเชพเชšเช• เช•เชนเซ‡เชถเซ‡, "เชคเชฎเซ‡ เช•เซ‹เชˆ เชตเชธเซเชคเซเชจเซ€ เชŸเซ€เช•เชพ เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ เชฎเชจเซ‡ เชฌเชคเชพเชตเซ‹ เช•เซ‡ เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช."

เชตเซ‡เชธเชฟเชฒเซ€ เชœเชตเชพเชฌ เช†เชชเซ‡ เช›เซ‡: โ€œเชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเซ€ เชตเชพเชค เช•เชฐเซ€เช เชคเซ‹, เชฎเชจเซ‡ เชœเซ‡เชตเซ€ เชตเชธเซเชคเซเช“ เช—เชฎเซ‡ เช›เซ‡

    args: /* empty */ { $$ = NULL; }
        | args arg { $$ = g_list_append( $1, $2 ); }
        ;

    arg: LC_ID ':' type-term { $$ = tl_arg_new( $1, $3 ); }
            | LC_ID ':' condition '?' type-term { $$ = tl_arg_new_cond( $1, $5, $3 ); free($3); }
            | UC_ID ':' type-term { $$ = tl_arg_new( $1, $3 ); }
            | type-term { $$ = tl_arg_new( "", $1 ); }
            | '[' LC_ID ']' { $$ = tl_arg_new_mult( "", tl_type_new( $2, TYPE_MOD_NONE ) ); }
            ;

เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เชคเซ‡ เช•เชฐเชคเชพเช‚ เชตเชงเซ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เช—เชฎเซ‡ เช›เซ‡

struct tree *parse_args4 (void) {
  PARSE_INIT (type_args4);
  struct parse so = save_parse ();
  PARSE_TRY (parse_optional_arg_def);
  if (S) {
    tree_add_child (T, S);
  } else {
    load_parse (so);
  }
  if (LEX_CHAR ('!')) {
    PARSE_ADD (type_exclam);
    EXPECT ("!");
  }
  PARSE_TRY_PES (parse_type_term);
  PARSE_OK;
}

เช…เชฅเชตเชพ

        # Regex to match the whole line
        match = re.match(r'''
            ^                  # We want to match from the beginning to the end
            ([w.]+)           # The .tl object can contain alpha_name or namespace.alpha_name
            (?:
                #             # After the name, comes the ID of the object
                ([0-9a-f]+)    # The constructor ID is in hexadecimal form
            )?                 # If no constructor ID was given, CRC32 the 'tl' to determine it

            (?:s              # After that, we want to match its arguments (name:type)
                {?             # For handling the start of the '{X:Type}' case
                w+            # The argument name will always be an alpha-only name
                :              # Then comes the separator between name:type
                [wd<>#.?!]+  # The type is slightly more complex, since it's alphanumeric and it can
                               # also have Vector<type>, flags:# and flags.0?default, plus :!X as type
                }?             # For handling the end of the '{X:Type}' case
            )*                 # Match 0 or more arguments
            s                 # Leave a space between the arguments and the equal
            =
            s                 # Leave another space between the equal and the result
            ([wd<>#.?]+)     # The result can again be as complex as any argument type
            ;$                 # Finally, the line should always end with ;
            ''', tl, re.IGNORECASE | re.VERBOSE)

เช† เช†เช–เซ‹ เชฒเซ‡เช•เซเชธเชฐ เช›เซ‡:

    ---functions---         return FUNCTIONS;
    ---types---             return TYPES;
    [a-z][a-zA-Z0-9_]*      yylval.string = strdup(yytext); return LC_ID;
    [A-Z][a-zA-Z0-9_]*      yylval.string = strdup(yytext); return UC_ID;
    [0-9]+                  yylval.number = atoi(yytext); return NUM;
    #[0-9a-fA-F]{1,8}       yylval.number = strtol(yytext+1, NULL, 16); return ID_HASH;

    n                      /* skip new line */
    [ t]+                  /* skip spaces */
    //.*$                 /* skip comments */
    /*.**/              /* skip comments */
    .                       return (int)yytext[0];

เชคเซ‡ เชธเชฐเชณ เช›เซ‡ เชคเซ‡ เชนเชณเชตเชพเชถเชฅเซ€ เชฎเซ‚เช•เซ‡ เช›เซ‡.โ€

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชชเชฐเชฟเชฃเชพเชฎเซ‡, TL เชจเชพ เชตเชพเชธเซเชคเชตเชฎเชพเช‚ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเชพ เชธเชฌเชธเซ‡เชŸ เชฎเชพเชŸเซ‡ เชชเชพเชฐเซเชธเชฐ เช…เชจเซ‡ เช•เซ‹เชก เชœเชจเชฐเซ‡เชŸเชฐ เชฒเช—เชญเช— 100 เชตเซเชฏเชพเช•เชฐเชฃเชจเซ€ เชฒเชพเช‡เชจ เช…เชจเซ‡ เชœเชจเชฐเซ‡เชŸเชฐเชจเซ€ ~300 เชฒเชพเช‡เชจเชฎเชพเช‚ เชซเชฟเชŸ เชฅเชพเชฏ เช›เซ‡ (เชฌเชงเชพเชจเซ€ เช—เชฃเชคเชฐเซ€ printเชจเซเช‚ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡เชฒ เช•เซ‹เชก), เชœเซ‡เชฎเชพเช‚ เชฆเชฐเซ‡เช• เชตเชฐเซเช—เชฎเชพเช‚ เช†เชคเซเชฎเชจเชฟเชฐเซ€เช•เซเชทเชฃ เชฎเชพเชŸเซ‡ เชŸเชพเชˆเชช เชˆเชจเซเชซเซ‹เชฐเซเชฎเซ‡เชถเชจ เชฌเชจเซเชธเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡. เชฆเชฐเซ‡เช• เชชเซ‹เชฒเซ€เชฎเซ‹เชฐเซเชซเชฟเช• เชชเซเชฐเช•เชพเชฐ เช–เชพเชฒเซ€ เชเชฌเซเชธเซเชŸเซเชฐเซ‡เช•เซเชŸ เชฌเซ‡เช เช•เซเชฒเชพเชธเชฎเชพเช‚ เชซเซ‡เชฐเชตเชพเชฏ เช›เซ‡, เช…เชจเซ‡ เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐเซเชธ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชตเชพเชฐเชธเชพเชฎเชพเช‚ เชฎเซ‡เชณเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ€ เชชเชพเชธเซ‡ เชธเซ€เชฐเซ€เชฏเชฒเชพเชˆเชเซ‡เชถเชจ เช…เชจเซ‡ เชกเซ€เชธเซ€เชฐเชฟเชฏเชฒเชพเชˆเชเซ‡เชถเชจ เชฎเชพเชŸเซ‡เชจเซ€ เชชเชฆเซเชงเชคเชฟเช“ เช›เซ‡.

เชชเซเชฐเช•เชพเชฐ เชญเชพเชทเชพเชฎเชพเช‚ เชชเซเชฐเช•เชพเชฐเซ‹เชจเซ‹ เช…เชญเชพเชต

เชฎเชœเชฌเซ‚เชค เชŸเชพเช‡เชชเชฟเช‚เช— เช เชธเชพเชฐเซ€ เชฌเชพเชฌเชค เช›เซ‡, เช–เชฐเซเช‚ เชจเซ‡? เชจเชพ, เช† เชนเซ‹เชฒเชฟเชตเชฐ เชจเชฅเซ€ (เชœเซ‹เช•เซ‡ เชนเซเช‚ เช—เชคเชฟเชถเซ€เชฒ เชญเชพเชทเชพเช“ เชชเชธเช‚เชฆ เช•เชฐเซเช‚ เช›เซเช‚), เชชเชฐเช‚เชคเซ TL เชจเชพ เชฎเชพเชณเช–เชพเชฎเชพเช‚ เชเช• เช…เชจเซเชฎเชพเชจ เช›เซ‡. เชคเซ‡เชจเชพ เช†เชงเชพเชฐเซ‡, เชญเชพเชทเชพเช เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฎ เชชเซเชฐเช•เชพเชฐเชจเชพ เชšเซ‡เช• เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพ เชœเซ‹เชˆเช. เช เซ€เช• เช›เซ‡, เช เซ€เช• เช›เซ‡, เช•เชฆเชพเชš เชคเซ‡ เชชเซ‹เชคเซ‡ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เช…เชฎเชฒเซ€เช•เชฐเชฃ, เชชเชฐเช‚เชคเซ เชคเซ‡เชฃเซ‡ เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚ เชคเซ‡เชฎเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช. เช…เชจเซ‡ เช†เชชเชฃเซ‡ เช•เซ‡เชตเชพ เชชเซเชฐเช•เชพเชฐเชจเซ€ เชคเช•เซ‹ เชœเซ‹เชˆเช เช›เซ‡?

เชธเซŒ เชชเซเชฐเชฅเชฎ, เช…เชตเชฐเซ‹เชงเซ‹. เช…เชนเซ€เช‚ เช†เชชเชฃเซ‡ เชซเชพเช‡เชฒเซ‹ เช…เชชเชฒเซ‹เชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹เชฎเชพเช‚ เชœเซ‹เชˆเช เช›เซ€เช:

เชซเชพเช‡เชฒเชจเซ€ เชฌเชพเชˆเชจเชฐเซ€ เชธเชพเชฎเช—เซเชฐเซ€เชจเซ‡ เชชเช›เซ€ เชญเชพเช—เซ‹เชฎเชพเช‚ เชตเชฟเชญเชพเชœเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชฌเชงเชพ เชญเชพเช—เซ‹ เชธเชฎเชพเชจ เช•เชฆเชจเชพ เชนเซ‹เชตเชพ เชœเซ‹เชˆเช ( part_size ) เช…เชจเซ‡ เชจเซ€เชšเซ‡เชจเซ€ เชถเชฐเชคเซ‹ เชชเซ‚เชฐเซ€ เช•เชฐเชตเซ€ เช†เชตเชถเซเชฏเช• เช›เซ‡:

  • part_size % 1024 = 0 (1KB เชตเชกเซ‡ เชตเชฟเชญเชพเชœเซเชฏ)
  • 524288 % part_size = 0 (512KB เชญเชพเช—_เช•เชฆ เชฆเซเชตเชพเชฐเชพ เชธเชฎเชพเชจเชฐเซ‚เชชเซ‡ เชตเชฟเชญเชพเชœเซเชฏ เชนเซ‹เชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡)

เช›เซ‡เชฒเซเชฒเชพ เชญเชพเช—เชจเซ‡ เช† เชถเชฐเชคเซ‹ เชธเช‚เชคเซ‹เชทเชตเซ€ เชœเชฐเซ‚เชฐเซ€ เชจเชฅเซ€, เชœเซ‹ เชคเซ‡เชจเซเช‚ เช•เชฆ part_size เช•เชฐเชคเชพ เช“เช›เซเช‚ เชนเซ‹เชฏ.

เชฆเชฐเซ‡เช• เชญเชพเช—เชฎเชพเช‚ เช•เซเชฐเชฎ เชจเช‚เชฌเชฐ เชนเซ‹เชตเซ‹ เชœเซ‹เชˆเช, เชซเชพเช‡เชฒ_เชญเชพเช—, 0 เชฅเซ€ 2,999 เชธเซเชงเซ€เชจเชพ เชฎเซ‚เชฒเซเชฏ เชธเชพเชฅเซ‡.

เชซเชพเชˆเชฒ เชชเชพเชฐเซเชŸเซ€เชถเชจ เชฅเชˆ เช—เชฏเชพ เชชเช›เซ€ เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเซ‡ เชธเชฐเซเชตเชฐ เชชเชฐ เชธเชพเชšเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชชเชฆเซเชงเชคเชฟ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชตเชพเชชเชฐเชตเซ upload.saveBigFilePart เชœเซ‹ เชซเชพเช‡เชฒเชจเซเช‚ เชธเช‚เชชเซ‚เชฐเซเชฃ เช•เชฆ 10 MB เช•เชฐเชคเชพเช‚ เชตเชงเซ เชนเซ‹เชฏ เช…เชจเซ‡ upload.saveFilePart เชจเชพเชจเซ€ เชซเชพเช‡เชฒเซ‹ เชฎเชพเชŸเซ‡.
[...] เชจเซ€เชšเซ‡เชจเชพ เชกเซ‡เชŸเชพ เช‡เชจเชชเซเชŸ เชญเซ‚เชฒเซ‹เชฎเชพเช‚เชฅเซ€ เชเช• เชชเชฐเชค เช†เชตเซ€ เชถเช•เซ‡ เช›เซ‡:

  • FILE_PARTS_INVALID โ€” เชญเชพเช—เซ‹เชจเซ€ เช…เชฎเชพเชจเซเชฏ เชธเช‚เช–เซเชฏเชพ. เช•เชฟเช‚เชฎเชค เชตเชšเซเชšเซ‡ เชจเชฅเซ€ 1..3000

เชถเซเช‚ เช†เชฎเชพเช‚เชจเซเช‚ เช•เซ‹เชˆ เช†เช•เซƒเชคเชฟเชฎเชพเช‚ เช›เซ‡? เชถเซเช‚ เช† TL เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เช…เชญเชฟเชตเซเชฏเช•เซเชค เชฅเชˆ เชถเช•เซ‡ เช›เซ‡? เชจเชพ. เชชเชฐเช‚เชคเซ เชฎเชพเชซ เช•เชฐเชถเซ‹, เชฆเชพเชฆเชพเชจเชพ เชŸเชฐเซเชฌเซ‹ เชชเชพเชธเซเช•เชฒ เชชเชฃ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชชเซเชฐเช•เชพเชฐเซ‹เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชนเชคเชพ เชถเซเชฐเซ‡เชฃเซ€เช“. เช…เชจเซ‡ เชคเซ‡ เชเช• เชตเชงเซ เชตเชธเซเชคเซ เชœเชพเชฃเชคเซ‹ เชนเชคเซ‹, เชœเซ‡ เชนเชตเซ‡ เชตเชงเซ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เช“เชณเช–เชพเชฏ เช›เซ‡ enum - เชเช• เชชเซเชฐเช•เชพเชฐ เชœเซ‡เชฎเชพเช‚ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ€ เชจเชฟเชถเซเชšเชฟเชค (เชจเชพเชจเซ€) เชธเช‚เช–เซเชฏเชพเชจเซ€ เช—เชฃเชคเชฐเซ€ เชนเซ‹เชฏ เช›เซ‡. C - เชจเซเชฏเซเชฎเซ‡เชฐเชฟเช• เชœเซ‡เชตเซ€ เชญเชพเชทเชพเช“เชฎเชพเช‚, เชจเซ‹เช‚เชง เช•เชฐเซ‹ เช•เซ‡ เช…เชคเซเชฏเชพเชฐ เชธเซเชงเซ€ เช†เชชเชฃเซ‡ เชซเช•เซเชค เชชเซเชฐเช•เชพเชฐเซ‹ เชตเชฟเชถเซ‡ เชœ เชตเชพเชค เช•เชฐเซ€ เช›เซ‡ เชธเช‚เช–เซเชฏเชพเช“. เชชเชฃ เชเชฐเซ‡, เชธเซเชŸเซเชฐเซ€เช‚เช—เซเชธ เชชเชฃ เช›เซ‡... เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช เชตเชฐเซเชฃเชจ เช•เชฐเชตเซเช‚ เชธเชฐเชธ เชฐเชนเซ‡เชถเซ‡ เช•เซ‡ เช† เชธเซเชŸเซเชฐเชฟเช‚เช—เชฎเชพเช‚ เชฎเชพเชคเซเชฐ เชซเซ‹เชจ เชจเช‚เชฌเชฐ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡, เช–เชฐเซเช‚ เชจเซ‡?

เช†เชฎเชพเช‚เชฅเซ€ เช•เช‚เชˆ TL เชฎเชพเช‚ เชจเชฅเซ€. เชชเชฐเช‚เชคเซ เชคเซเชฏเชพเช‚ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, JSON เชธเซเช•เซ€เชฎเชพเชฎเชพเช‚. เช…เชจเซ‡ เชœเซ‹ เช•เซ‹เชˆ เช…เชจเซเชฏ เชตเซเชฏเช•เซเชคเชฟ 512 KB เชจเซ€ เชตเชฟเชญเชพเชœเซเชฏเชคเชพ เชตเชฟเชถเซ‡ เชฆเชฒเซ€เชฒ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡, เช•เซ‡ เช†เชจเซ‡ เชนเชœเซ เชชเชฃ เช•เซ‹เชกเชฎเชพเช‚ เชคเชชเชพเชธเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชคเซ‹ เช–เชพเชคเชฐเซ€ เช•เชฐเซ‹ เช•เซ‡ เช•เซเชฒเชพเชฏเช‚เชŸ เชซเช•เซเชค เชนเซเช‚ เชจเชพ เช•เชฐเซ€ เชถเช•เซเชฏเซ‹ เชถเซเชฐเซ‡เชฃเซ€เชจเซ€ เชฌเชนเชพเชฐเชจเซ‹ เชจเช‚เชฌเชฐ เชฎเซ‹เช•เชฒเซ‹ 1..3000 (เช…เชจเซ‡ เช…เชจเซเชฐเซ‚เชช เชญเซ‚เชฒ เชŠเชญเซ€ เชฅเชˆ เชถเช•เซ€ เชจ เชนเซ‹เชค) เชคเซ‡ เชถเช•เซเชฏ เชฌเชจเซเชฏเซเช‚ เชนเซ‹เชค, เช–เชฐเซเช‚? ..

เชฎเชพเชฐเซเช— เชฆเซเชตเชพเชฐเชพ, เชญเซ‚เชฒเซ‹ เช…เชจเซ‡ เชตเชณเชคเชฐ เชฎเซ‚เชฒเซเชฏเซ‹ เชตเชฟเชถเซ‡. เชœเซ‡เชฎเชฃเซ‡ TL เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเซเชฏเซเช‚ เช›เซ‡ เชคเซ‡เช“ เชชเชฃ เชคเซ‡เชฎเชจเซ€ เช†เช‚เช–เซ‹ เชเชพเช‚เช–เซ€ เช•เชฐเซ‡ เช›เซ‡ - เชคเซ‡ เชคเชฐเชค เชœ เช…เชฎเชพเชฐเชพ เชชเชฐ เชฆเซ‡เช–เชพเชคเซเช‚ เชจ เชนเชคเซเช‚ เชฆเชฐเซ‡เช• TL เชฎเชพเช‚ เชซเช‚เช•เซเชถเชจ เชตเชพเชธเซเชคเชตเชฎเชพเช‚ เชซเช•เซเชค เชตเชฐเซเชฃเชตเซ‡เชฒ เชฐเซ€เชŸเชฐเซเชจ เชชเซเชฐเช•เชพเชฐ เชœ เชจเชนเซ€เช‚, เชชเชฃ เชเช• เชญเซ‚เชฒ เชชเชฃ เชชเชฐเชค เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ เช† TL เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เซ‹เชˆเชชเชฃ เชฐเซ€เชคเซ‡ เช…เชจเซเชฎเชพเชจเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชคเซเช‚ เชจเชฅเซ€. เช…เชฒเชฌเชคเซเชค, เชคเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชธเซเชชเชทเซเชŸ เช›เซ‡ เช…เชจเซ‡ เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เช•เช‚เชˆเชชเชฃเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€ (เชœเซ‹เช•เซ‡ เชตเชพเชธเซเชคเชตเชฎเชพเช‚, เช†เชฐเชชเซ€เชธเซ€ เชœเซเชฆเซ€ เชœเซเชฆเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เช…เชฎเซ‡ เชชเช›เซ€เชฅเซ€ เช† เชชเชฐ เชชเชพเช›เชพ เช†เชตเซ€เชถเซเช‚) - เชชเชฐเช‚เชคเซ เช…เชฎเซ‚เชฐเซเชค เชชเซเชฐเช•เชพเชฐเซ‹เชจเชพ เช—เชฃเชฟเชคเชจเซ€ เชตเชฟเชญเชพเชตเชจเชพเช“เชจเซ€ เชถเซเชฆเซเชงเชคเชพ เชตเชฟเชถเซ‡ เชถเซเช‚? เชธเซเชตเชฐเซเช—เซ€เชฏ เชตเชฟเชถเซเชตเชฎเชพเช‚เชฅเซ€?.. เชฎเซ‡เช‚ เชŸเช— เช‰เชชเชพเชกเซเชฏเซเช‚ - เชคเซ‡เชฅเซ€ เชคเซ‡เชจเซ‡ เชฎเซ‡เชš เช•เชฐเซ‹.

เช…เชจเซ‡ เช›เซ‡เชฒเซเชฒเซ‡, เชตเชพเช‚เชšเชจเช•เซเชทเชฎเชคเชพ เชตเชฟเชถเซ‡ เชถเซเช‚? เชธเชพเชฐเซเช‚, เชคเซเชฏเชพเช‚, เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชนเซเช‚ เชˆเชšเซเช›เซเช‚ เช›เซเช‚ เชตเชฐเซเชฃเชจ เชคเซ‡ เชธเซเช•เซ€เชฎเชพเชฎเชพเช‚ เชฌเชฐเชพเชฌเชฐ เช›เซ‡ (เชœเซ‡เชเชธเช“เชเชจ เชธเซเช•เซ€เชฎเชพเชฎเชพเช‚, เชซเชฐเซ€เชฅเซ€, เชคเซ‡ เช›เซ‡), เชชเชฐเช‚เชคเซ เชœเซ‹ เชคเชฎเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชคเชพเชฃเชฎเชพเช‚ เช›เซ‹, เชคเซ‹ เชชเช›เซ€ เชตเซเชฏเชตเชนเชพเชฐเซ เชฌเชพเชœเซ เชตเชฟเชถเซ‡ เชถเซเช‚ - เช…เชชเชกเซ‡เชŸเซเชธ เชฆเชฐเชฎเชฟเชฏเชพเชจ เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ เชคเซเชšเซเช› เชฐเซ€เชคเซ‡ เชœเซ‹เชตเซเช‚? เชชเชฐ เชคเชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชœเซเช“ เชตเชพเชธเซเชคเชตเชฟเช• เช‰เชฆเชพเชนเชฐเชฃเซ‹:

-channelFull#76af5481 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int = ChatFull;
+channelFull#1c87a71a flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_view_stats:flags.12?true id:int about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?int migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int = ChatFull;

เช…เชฅเชตเชพ

-message#44f9b43d flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true id:int from_id:flags.8?int to_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to_msg_id:flags.3?int date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long = Message;
+message#44f9b43d flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true id:int from_id:flags.8?int to_id:Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?int reply_to_msg_id:flags.3?int date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long = Message;

เชคเซ‡ เชฆเชฐเซ‡เช• เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ GitHub, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช†เชตเซ€ เชฒเชพเช‚เชฌเซ€ เชฒเชพเช‡เชจเซ‹เชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเชตเชพเชจเซ‹ เช‡เชจเช•เชพเชฐ เช•เชฐเซ‡ เช›เซ‡. เชฐเชฎเชค "10 เชคเชซเชพเชตเชคเซ‹ เชถเซ‹เชงเซ‹", เช…เชจเซ‡ เชฎเช—เชœ เชคเชฐเชค เชœ เชœเซ‡ เชœเซเช เช›เซ‡ เชคเซ‡ เช เช›เซ‡ เช•เซ‡ เชฌเช‚เชจเซ‡ เช‰เชฆเชพเชนเชฐเชฃเซ‹เชจเซ€ เชถเชฐเซ‚เช†เชค เช…เชจเซ‡ เช…เช‚เชค เชธเชฎเชพเชจ เช›เซ‡, เชคเชฎเชพเชฐเซ‡ เชฎเชงเซเชฏเชฎเชพเช‚ เช•เซเชฏเชพเช‚เช• เช•เช‚เชŸเชพเชณเชพเชœเชจเช• เชฐเซ€เชคเซ‡ เชตเชพเช‚เชšเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡... เชฎเชพเชฐเชพ เชฎเชคเซ‡, เช† เชซเช•เซเชค เชธเชฟเชฆเซเชงเชพเช‚เชคเชฎเชพเช‚ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช•เซ‡เชตเชณ เชฆเซƒเชทเซเชŸเชฟเชจเซ€ เช—เช‚เชฆเชพ เช…เชจเซ‡ เชขเชพเชณเชตเชพเชณเซเช‚.

เชฎเชพเชฐเซเช— เชฆเซเชตเชพเชฐเชพ, เชธเชฟเชฆเซเชงเชพเช‚เชคเชจเซ€ เชถเซเชฆเซเชงเชคเชพ เชตเชฟเชถเซ‡. เชถเชพ เชฎเชพเชŸเซ‡ เช†เชชเชฃเชจเซ‡ เชฌเซ€เชŸ เชซเซ€เชฒเซเชกเซเชธเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡? เชเชตเซเช‚ เชจเชฅเซ€ เชฒเชพเช—เชคเซเช‚ เช•เซ‡ เชคเซ‡เช“ เช—เช‚เชง เชชเซเชฐเช•เชพเชฐ เชธเชฟเชฆเซเชงเชพเช‚เชคเชจเชพ เชฆเซƒเชทเซเชŸเชฟเช•เซ‹เชฃเชฅเซ€ เช–เชฐเชพเชฌ? เชธเชฎเชœเซ‚เชคเซ€ เชฐเซ‡เช–เชพเช•เซƒเชคเชฟเชจเชพ เชชเชนเซ‡เชฒเชพเชจเชพเช‚ เชธเช‚เชธเซเช•เชฐเชฃเซ‹เชฎเชพเช‚ เชœเซ‹เชˆ เชถเช•เชพเชฏ เช›เซ‡. เชถเชฐเซ‚เช†เชคเชฎเชพเช‚, เชนเชพ, เชคเซ‡ เช†เชตเซเช‚ เชนเชคเซเช‚, เชฆเชฐเซ‡เช• เช›เซ€เช‚เช• เชฎเชพเชŸเซ‡ เชเช• เชจเชตเซ‹ เชชเซเชฐเช•เชพเชฐ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹. เช† เชฐเซ‚เชกเซ€เชฎเซ‡เชจเซเชŸเซเชธ เชนเชœเซ€ เชชเชฃ เช† เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡:

storage.fileUnknown#aa963b05 = storage.FileType;
storage.filePartial#40bc6f52 = storage.FileType;
storage.fileJpeg#7efe0e = storage.FileType;
storage.fileGif#cae1aadf = storage.FileType;
storage.filePng#a4f63c0 = storage.FileType;
storage.filePdf#ae1e508d = storage.FileType;
storage.fileMp3#528a0677 = storage.FileType;
storage.fileMov#4b09ebbc = storage.FileType;
storage.fileMp4#b3cea0e4 = storage.FileType;
storage.fileWebp#1081464c = storage.FileType;

เชชเชฐเช‚เชคเซ เชนเชตเซ‡ เช•เชฒเซเชชเชจเชพ เช•เชฐเซ‹, เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชคเชฎเชพเชฐเชพ เชฌเช‚เชงเชพเชฐเชฃเชฎเชพเช‚ 5 เชตเซˆเช•เชฒเซเชชเชฟเช• เช•เซเชทเซ‡เชคเซเชฐเซ‹ เช›เซ‡, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชคเชฎเชพเชฎ เชธเช‚เชญเชตเชฟเชค เชตเชฟเช•เชฒเซเชชเซ‹ เชฎเชพเชŸเซ‡ 32 เชชเซเชฐเช•เชพเชฐเชจเชพเช‚ เช•เซเชทเซ‡เชคเซเชฐเซ‹เชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡. เชธเช‚เชฏเซเช•เซเชค เชตเชฟเชธเซเชซเซ‹เชŸ. เช†เชฎ, TL เชฅเชฟเชฏเชฐเซ€เชจเซ€ เชธเซเชซเชŸเชฟเช• เชถเซเชฆเซเชงเชคเชพ เชซเชฐเซ€ เชเช•เชตเชพเชฐ เชถเซเชฐเซ‡เชฃเซ€เชฌเชฆเซเชงเชคเชพเชจเซ€ เช•เช เซ‹เชฐ เชตเชพเชธเซเชคเชตเชฟเช•เชคเชพเชจเชพ เช•เชพเชธเซเชŸ-เช†เชฏเชฐเซเชจ เช—เชงเซ‡เชกเชพ เชธเชพเชฎเซ‡ เชตเชฟเช–เซ‡เชฐเชพเชˆ เช—เชˆ.

เช† เช‰เชชเชฐเชพเช‚เชค, เช•เซ‡เชŸเชฒเชพเช• เชธเซเชฅเชณเซ‹เช เช† เชตเซเชฏเช•เซเชคเชฟเช“ เชชเซ‹เชคเซ‡ เชœ เชคเซ‡เชฎเชจเซ€ เชชเซ‹เชคเชพเชจเซ€ เชŸเชพเช‡เชชเซ‹เชฒเซ‹เชœเซ€เชจเซเช‚ เช‰เชฒเซเชฒเช‚เช˜เชจ เช•เชฐเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, MTProto (เช†เช—เชฒเซเช‚ เชชเซเชฐเช•เชฐเชฃ) เชฎเชพเช‚ เชชเซเชฐเชคเชฟเชญเชพเชต Gzip เชฆเซเชตเชพเชฐเชพ เชธเช‚เช•เซเชšเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชฌเชงเซเช‚ เชฌเชฐเชพเชฌเชฐ เช›เซ‡ - เชธเชฟเชตเชพเชฏ เช•เซ‡ เชธเซเชคเชฐเซ‹ เช…เชจเซ‡ เชธเชฐเซเช•เชฟเชŸเชจเซเช‚ เช‰เชฒเซเชฒเช‚เช˜เชจ เชฅเชพเชฏ เช›เซ‡. เชซเชฐเซ€ เชเช•เชตเชพเชฐ, เชคเซ‡ RpcResult เชชเซ‹เชคเซ‡ เชจ เชนเชคเซเช‚ เชœเซ‡ เชฒเชฃเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚, เชชเชฐเช‚เชคเซ เชคเซ‡เชจเชพ เชธเชฎเชพเชตเชฟเชทเซเชŸเซ‹. เชธเชพเชฐเซเช‚, เช† เช•เซ‡เชฎ เช•เชฐเชตเซเช‚?.. เชฎเชพเชฐเซ‡ เชเช• เช•เซเชฐเซ‰เชš เช•เชพเชชเชตเซ€ เชชเชกเซ€ เชœเซ‡เชฅเซ€ เช•เชฎเซเชชเซเชฐเซ‡เชถเชจ เช—เชฎเซ‡ เชคเซเชฏเชพเช‚ เช•เชพเชฎ เช•เชฐเซ€ เชถเช•เซ‡.

เช…เชฅเชตเชพ เชฌเซ€เชœเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ, เช…เชฎเชจเซ‡ เชเช•เชตเชพเชฐ เชญเซ‚เชฒ เชฎเชณเซ€ - เชคเซ‡ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ InputPeerUser ะฒะผะตัั‚ะพ InputUser. เช…เชฅเชตเชพ เชŠเชฒเชŸเซเช‚. เชชเชฐเช‚เชคเซ เชคเซ‡ เช•เชพเชฎ เช•เชฐเซเชฏเซเช‚! เชเชŸเชฒเซ‡ เช•เซ‡, เชธเชฐเซเชตเชฐ เชชเซเชฐเช•เชพเชฐ เชตเชฟเชถเซ‡ เชงเซเชฏเชพเชจ เช†เชชเชคเซเช‚ เชจเชฅเซ€. เช† เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชนเซ‹เชˆ เชถเช•เซ‡? เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ-เช•เซเชฒเซ€เชจเชพ เช•เซ‹เชก เชŸเซเช•เชกเชพเช“ เชฆเซเชตเชพเชฐเชพ เช…เชฎเชจเซ‡ เชœเชตเชพเชฌ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชถเช•เซ‡ เช›เซ‡:

  if (tgl_get_peer_type (E->id) != TGL_PEER_CHANNEL || (C && (C->flags & TGLCHF_MEGAGROUP))) {
    out_int (CODE_messages_get_history);
    out_peer_id (TLS, E->id);
  } else {    
    out_int (CODE_channels_get_important_history);

    out_int (CODE_input_channel);
    out_int (tgl_get_peer_id (E->id));
    out_long (E->id.access_hash);
  }
  out_int (E->max_id);
  out_int (E->offset);
  out_int (E->limit);
  out_int (0);
  out_int (0);

เชฌเซ€เชœเชพ เชถเชฌเซเชฆเซ‹เชฎเชพเช‚ เช•เชนเซ€เช เชคเซ‹, เช† เชคเซ‡ เช›เซ‡ เชœเซเชฏเชพเช‚ เช•เซเชฐเชฎเชพเช‚เช•เชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชœเชพเชคเซ‡, เชœเชจเชฐเซ‡เชŸเซ‡เชก เช•เซ‹เชก เชจเชฅเซ€! เช•เชฆเชพเชš เชธเชฐเซเชตเชฐ เชธเชฎเชพเชจ เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชพเชฏเซ‡เชฒ เช›เซ‡?.. เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เชฐเซ€เชคเซ‡, เชœเซ‹ เชเช•เชตเชพเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซ‹ เช† เช•เชพเชฐเซเชฏ เช•เชฐเชถเซ‡, เชชเชฐเช‚เชคเซ เช…เชชเชกเซ‡เชŸ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชชเช›เซ€เชฅเซ€ เชคเซ‡เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ€ เชถเช•เชพเชฏ? เชถเซเช‚ เช† เชฏเซ‹เชœเชจเชพเชจเซ€ เชถเซ‹เชง เชถเชพ เชฎเชพเชŸเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€? เช…เชจเซ‡ เช…เชนเซ€เช‚ เช†เชชเชฃเซ‡ เช†เช—เชณเชจเชพ เชชเซเชฐเชถเซเชจ เชชเชฐ เช†เช—เชณ เชตเชงเซ€เช เช›เซ€เช.

เชตเชฐเซเชเชจเซ€เช‚เช—. เชธเซเชคเชฐเซ‹

เชถเชพ เชฎเชพเชŸเซ‡ เชฏเซ‹เชœเชจเชพเช•เซ€เชฏ เชธเช‚เชธเซเช•เชฐเชฃเซ‹เชจเซ‡ เชธเซเชคเชฐเซ‹ เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชคเซ‡ เชซเช•เซเชค เชชเซเชฐเช•เชพเชถเชฟเชค เชฏเซ‹เชœเชจเชพเชถเชพเชธเซเชคเซเชฐเชจเชพ เช‡เชคเชฟเชนเชพเชธเชจเชพ เช†เชงเชพเชฐเซ‡ เช…เชจเซเชฎเชพเชจ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชฆเซ‡เช–เซ€เชคเซ€ เชฐเซ€เชคเซ‡, เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชฒเซ‡เช–เช•เซ‹เช เชตเชฟเชšเชพเชฐเซเชฏเซเช‚ เช•เซ‡ เชฎเซ‚เชณเชญเซ‚เชค เชตเชธเซเชคเซเช“ เช…เชชเชฐเชฟเชตเชฐเซเชคเชฟเชค เชฏเซ‹เชœเชจเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เช…เชจเซ‡ เชฎเชพเชคเซเชฐ เชœเซเชฏเชพเช‚ เชœเชฐเซ‚เชฐเซ€ เชนเซ‹เชฏ เชคเซเชฏเชพเช‚, เชšเซ‹เช•เซเช•เชธ เชตเชฟเชจเช‚เชคเซ€เช“ เชฎเชพเชŸเซ‡, เชธเซ‚เชšเชตเซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡เช“ เชเช• เช…เชฒเช— เชธเช‚เชธเซเช•เชฐเชฃเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡. เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เชฐเซ€เชคเซ‡, เชเช• เชธเชพเชฐเซ‹ เชตเชฟเชšเชพเชฐ เชชเชฃ - เช…เชจเซ‡ เชจเชตเซ‹ เชนเชถเซ‡, เชœเซ‡เชฎ เช•เซ‡ เชคเซ‡ เชนเชคเชพ, "เชฎเชฟเชถเซเชฐเชฟเชค", เชœเซ‚เชจเชพเชจเซ€ เชŸเซ‹เชš เชชเชฐ เชธเซเชคเชฐเชตเชพเชณเซ€. เชชเชฐเช‚เชคเซ เชšเชพเชฒเซ‹ เชœเซ‹เชˆเช เช•เซ‡ เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚. เชธเชพเชšเซเช‚, เชนเซเช‚ เชคเซ‡เชจเซ‡ เชถเชฐเซ‚เช†เชคเชฅเซ€ เชœ เชœเซ‹เชˆ เชถเช•เซเชฏเซ‹ เชจ เชนเชคเซ‹ - เชคเซ‡ เชฐเชฎเซเชœเซ€ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฌเซ‡เช เชฒเซ‡เชฏเชฐเชจเซ‹ เช†เช•เซƒเชคเชฟ เชซเช•เซเชค เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เชจเชฅเซ€. เชธเซเชคเชฐเซ‹ 2 เชฅเซ€ เชถเชฐเซ‚ เชฅเชฏเชพ. เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เช…เชฎเชจเซ‡ เชตเชฟเชถเซ‡เชท TL เชฒเช•เซเชทเชฃ เชตเชฟเชถเซ‡ เชœเชฃเชพเชตเซ‡ เช›เซ‡:

เชœเซ‹ เช•เซเชฒเชพเชฏเช‚เชŸ เชฒเซ‡เชฏเชฐ 2 เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡, เชคเซ‹ เชจเซ€เชšเซ‡เชจเชพ เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เช†เชตเชถเซเชฏเช• เช›เซ‡:

invokeWithLayer2#289dd1f6 {X:Type} query:!X = X;

เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚, เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชฆเชฐเซ‡เช• API เช•เซ‰เชฒ เชชเชนเซ‡เชฒเชพเช‚, เชฎเซ‚เชฒเซเชฏ เชธเชพเชฅเซ‡ เชชเซ‚เชฐเซเชฃเชพเช‚เช• 0x289dd1f6 เชชเชฆเซเชงเชคเชฟ เชจเช‚เชฌเชฐ เชชเชนเซ‡เชฒเชพเช‚ เช‰เชฎเซ‡เชฐเชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡.

เชธเชพเชฎเชพเชจเซเชฏ เชฒเชพเช—เซ‡ เช›เซ‡. เชชเชฃ เช†เช—เชณ เชถเซเช‚ เชฅเชฏเซเช‚? เชชเช›เซ€ เชฆเซ‡เช–เชพเชฏเชพ

invokeWithLayer3#b7475268 query:!X = X;

เชคเซ‹ เช†เช—เชณ เชถเซเช‚ เช›เซ‡? เชœเซ‡เชฎ เชคเชฎเซ‡ เชงเชพเชฐเซ€ เชถเช•เซ‹ เช›เซ‹,

invokeWithLayer4#dea0d430 query:!X = X;

เชฐเชฎเซเชœเซ€? เชจเชพ, เชนเชธเชตเซเช‚ เชฌเชนเซ เชตเชนเซ‡เชฒเซเช‚ เช›เซ‡, เช เชนเช•เซ€เช•เชค เชตเชฟเชถเซ‡ เชตเชฟเชšเชพเชฐเซ‹ เชฆเชฐเซ‡เช• เชฌเซ€เชœเชพ เชธเซเชคเชฐเชจเซ€ เชตเชฟเชจเช‚เชคเซ€เชจเซ‡ เช†เชตเชพ เชตเชฟเชถเชฟเชทเซเชŸ เชชเซเชฐเช•เชพเชฐเชฎเชพเช‚ เช†เชตเชฐเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ - เชœเซ‹ เชคเซ‡ เชฌเชงเชพ เชคเชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เช…เชฒเช— เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเซ‡ เชคเซ‡เชฎเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชฒเช— เช•เชฐเซ€ เชถเช•เซ‹? เช…เชจเซ‡ เช†เช—เชณ เชซเช•เซเชค 4 เชฌเชพเช‡เชŸเซเชธ เช‰เชฎเซ‡เชฐเชตเชพ เช เชเช• เชธเซเช‚เชฆเชฐ เช•เชพเชฐเซเชฏเช•เซเชทเชฎ เชชเชฆเซเชงเชคเชฟ เช›เซ‡. เชคเซ‡เชฅเซ€,

invokeWithLayer5#417a57ae query:!X = X;

เชชเชฐเช‚เชคเซ เชคเซ‡ เชธเซเชชเชทเซเชŸ เช›เซ‡ เช•เซ‡ เชฅเซ‹เชกเชพ เชธเชฎเชฏ เชชเช›เซ€ เช† เชเช• เชชเซเชฐเช•เชพเชฐเชจเซเช‚ เชฌเชšเซเชšเชจเชฒเชฟเชฏเชพ เชฌเชจเซ€ เชœเชถเซ‡. เช…เชจเซ‡ เช‰เช•เซ‡เชฒ เช†เชตเซเชฏเซ‹:

เช…เชชเชกเซ‡เชŸ: เชฒเซ‡เชฏเชฐ 9 เชฅเซ€ เชถเชฐเซ‚ เช•เชฐเซ€เชจเซ‡, เชธเชนเชพเชฏเช• เชชเชฆเซเชงเชคเชฟเช“ invokeWithLayerN เชธเชพเชฅเซ‡ เชœ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ initConnection

เชนเซเชฐเซ‡! 9 เชธเช‚เชธเซเช•เชฐเชฃเซ‹ เชชเช›เซ€, เช…เชฎเซ‡ เช†เช–เชฐเซ‡ 80 เชจเชพ เชฆเชพเชฏเช•เชพเชฎเชพเช‚ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชฎเชพเช‚ เชถเซเช‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เชคเซ‡ เชคเชฐเชซ เช†เชตเซเชฏเชพ - เช•เชจเซ‡เช•เซเชถเชจเชจเซ€ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชเช•เชตเชพเชฐ เชธเช‚เชธเซเช•เชฐเชฃ เชชเชฐ เชธเช‚เชฎเชค เชฅเชฏเชพ!

เชคเซ‹ เช†เช—เชณ เชถเซเช‚ เช›เซ‡?..

invokeWithLayer10#39620c41 query:!X = X;
...
invokeWithLayer18#1c900537 query:!X = X;

เชชเชฐเช‚เชคเซ เชนเชตเซ‡ เชคเชฎเซ‡ เชนเชœเซ€ เชชเชฃ เชนเชธเซ€ เชถเช•เซ‹ เช›เซ‹. เชฎเชพเชคเซเชฐ เช…เชจเซเชฏ 9 เชธเซเชคเชฐเซ‹ เชชเช›เซ€, เชธเช‚เชธเซเช•เชฐเชฃ เชจเช‚เชฌเชฐ เชธเชพเชฅเซ‡เชจเซ‹ เชเช• เชธเชพเชฐเซเชตเชคเซเชฐเชฟเช• เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐ เช†เช–เชฐเซ‡ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹, เชœเซ‡เชจเซ‡ เช•เชจเซ‡เช•เซเชถเชจเชจเซ€ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชซเช•เซเชค เชเช• เชœ เชตเชพเชฐ เช•เซ‰เชฒ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เช…เชจเซ‡ เชธเซเชคเชฐเซ‹เชจเซ‹ เช…เชฐเซเชฅ เช…เชฆเซƒเชถเซเชฏ เชฅเชˆ เช—เชฏเซ‹ เชนเซ‹เชฏ เชคเซ‡เชตเซเช‚ เชฒเชพเช—เชคเซเช‚ เชนเชคเซเช‚, เชนเชตเซ‡ เชคเซ‡ เชฎเชพเชคเซเชฐ เชเช• เชถเชฐเชคเซ€ เชธเช‚เชธเซเช•เชฐเชฃ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชฌเซ€เชœเซ‡ เชฌเชงเซ‡. เชชเซเชฐเชถเซเชจ เช‰เช•เซ‡เชฒเชพเชˆ เช—เชฏเซ‹.

เชฌเชฐเชพเชฌเชฐ?..

เชตเซ‡เชธเชฟเชฒเซ€, [16.07.18 14:01] เชถเซเช•เซเชฐเชตเชพเชฐเซ‡ เชชเชฃ เชฎเซ‡เช‚ เชตเชฟเชšเชพเชฐเซเชฏเซเช‚:
เชŸเซ‡เชฒเชฟเชธเชฐเซเชตเชฐ เชตเชฟเชจเช‚เชคเซ€ เชตเชฟเชจเชพ เช‡เชตเซ‡เชจเซเชŸเซเชธ เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡. เชตเชฟเชจเช‚เชคเซ€เช“ InvokeWithLayer เชฎเชพเช‚ เช†เชตเชฐเชฟเชค เชนเซ‹เชตเซ€ เช†เชตเชถเซเชฏเช• เช›เซ‡. เชธเชฐเซเชตเชฐ เช…เชชเชกเซ‡เชŸเซเชธเชจเซ‡ เชฒเชชเซ‡เชŸเซ€ เชถเช•เชคเซเช‚ เชจเชฅเซ€; เชชเซเชฐเชคเชฟเชธเชพเชฆเซ‹ เช…เชจเซ‡ เช…เชชเชกเซ‡เชŸเซเชธเชจเซ‡ เชฐเซ‡เชช เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‹เชˆ เชฎเชพเชณเช–เซเช‚ เชจเชฅเซ€.

เชคเซ‡. เช•เซเชฒเชพเชฏเช‚เชŸ เชคเซ‡ เชธเซเชคเชฐเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ€ เชถเช•เชคเซ‹ เชจเชฅเซ€ เชœเซ‡เชฎเชพเช‚ เชคเซ‡เชจเซ‡ เช…เชชเชกเซ‡เชŸเซเชธ เชœเซ‹เชˆเช เช›เซ‡

เชตเชพเชฆเชฟเชฎ เช—เซ‹เช‚เชšเชพเชฐเซ‹เชต, [16.07.18 14:02] เชถเซเช‚ InvokeWithLayer เชธเชฟเชฆเซเชงเชพเช‚เชคเชฎเชพเช‚ เช•เซเชฐเซ‰เชš เชจเชฅเซ€?

Vasily, [16.07.18 14:02] เช† เชเช•เชฎเชพเชคเซเชฐ เชฐเชธเซเชคเซ‹ เช›เซ‡

Vadim Goncharov, [16.07.18 14:02] เชœเซ‡เชจเซ‹ เช†เชตเชถเซเชฏเช• เช…เชฐเซเชฅ เชธเชคเซเชฐเชจเซ€ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชธเซเชคเชฐ เชชเชฐ เชธเช‚เชฎเชค เชฅเชตเซเช‚ เชœเซ‹เชˆเช.

เชฎเชพเชฐเซเช— เชฆเซเชตเชพเชฐเชพ, เชคเซ‡ เช…เชจเซเชธเชฐเซ‡ เช›เซ‡ เช•เซ‡ เช•เซเชฒเชพเชฏเช‚เชŸ เชกเชพเช‰เชจเช—เซเชฐเซ‡เชก เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชจเชฅเซ€

เช…เชชเชกเซ‡เชŸเซเชธ, เชเชŸเชฒเซ‡ เช•เซ‡. เชชเซเชฐเช•เชพเชฐ Updates เชธเซเช•เซ€เชฎเชฎเชพเช‚, เชธเชฐเซเชตเชฐ เช•เซเชฒเชพเชฏเชจเซเชŸเชจเซ‡ API เชตเชฟเชจเช‚เชคเซ€เชจเชพ เชœเชตเชพเชฌเชฎเชพเช‚ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เชœเซเชฏเชพเชฐเซ‡ เช•เซ‹เชˆ เช˜เชŸเชจเชพ เชฌเชจเซ‡ เชคเซเชฏเชพเชฐเซ‡ เชธเซเชตเชคเช‚เชคเซเชฐ เชฐเซ€เชคเซ‡ เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡. เช† เชเช• เชœเชŸเชฟเชฒ เชตเชฟเชทเชฏ เช›เซ‡ เชœเซ‡เชจเซ€ เชšเชฐเซเชšเชพ เชฌเซ€เชœเซ€ เชชเซ‹เชธเซเชŸเชฎเชพเช‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡, เชชเชฐเช‚เชคเซ เช…เชคเซเชฏเชพเชฐเซ‡ เช เชœเชพเชฃเชตเซเช‚ เช…เช—เชคเซเชฏเชจเซเช‚ เช›เซ‡ เช•เซ‡ เช•เซเชฒเชพเชฏเชจเซเชŸ เช‘เชซเชฒเชพเช‡เชจ เชนเซ‹เชฏ เชคเซเชฏเชพเชฐเซ‡ เชชเชฃ เชธเชฐเซเชตเชฐ เช…เชชเชกเซ‡เชŸเซเชธ เชธเชพเชšเชตเซ‡ เช›เซ‡.

เช†เชฎ, เชœเซ‹ เชคเชฎเซ‡ เชฒเชชเซ‡เชŸเชตเชพเชจเซ‹ เช‡เชจเช•เชพเชฐ เช•เชฐเซ‹ เช›เซ‹ เชฆเชฐเซ‡เช• เชชเซ‡เช•เซ‡เชœ เชคเซ‡เชจเชพ เชธเช‚เชธเซเช•เชฐเชฃเชจเซ‡ เชธเซ‚เชšเชตเชตเชพ เชฎเชพเชŸเซ‡, เช† เชคเชพเชฐเซเช•เชฟเช• เชฐเซ€เชคเซ‡ เชจเซ€เชšเซ‡เชจเซ€ เชธเช‚เชญเชตเชฟเชค เชธเชฎเชธเซเชฏเชพเช“ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชพเชฏ เช›เซ‡:

  • เชธเชฐเซเชตเชฐ เช•เซเชฒเชพเชฏเชจเซเชŸเชจเซ‡ เชคเซ‡ เช•เชฏเชพ เชธเช‚เชธเซเช•เชฐเชฃเชจเซ‡ เชธเชฎเชฐเซเชฅเชจ เช†เชชเซ‡ เช›เซ‡ เชคเซ‡ เชœเชพเชฃ เช•เชฐเซ‡ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚ เชœ เช•เซเชฒเชพเชฏเช‚เชŸเชจเซ‡ เช…เชชเชกเซ‡เชŸเซเชธ เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡
  • เช•เซเชฒเชพเชฏเชจเซเชŸเชจเซ‡ เช…เชชเช—เซเชฐเซ‡เชก เช•เชฐเซเชฏเชพ เชชเช›เซ€ เชฎเชพเชฐเซ‡ เชถเซเช‚ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช?
  • เช•เซ‹เชฃ เช—เซ‡เชฐเช‚เชŸเซ€เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชฒเซ‡เชฏเชฐ เชจเช‚เชฌเชฐ เชตเชฟเชถเซ‡ เชธเชฐเซเชตเชฐเชจเซ‹ เช…เชญเชฟเชชเซเชฐเชพเชฏ เชฌเชฆเชฒเชพเชถเซ‡ เชจเชนเซ€เช‚?

เชถเซเช‚ เชคเชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เช† เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เช…เชจเซเชฎเชพเชจ เช›เซ‡, เช…เชจเซ‡ เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เช† เชฅเชˆ เชถเช•เชคเซเช‚ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เชธเชฐเซเชตเชฐ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เชฒเช–เชพเชฏเซ‡เชฒเซเช‚ เช›เซ‡ (เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚, เชคเซ‡ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชšเช•เชพเชธเชพเชฏเซ‡เชฒ เช›เซ‡)? เชนเชพ! เชญเชฒเซ‡ เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชนเซ‹เชฏ!

เช† เชฌเชฐเชพเชฌเชฐ เช›เซ‡ เชœเซ‡ เช…เชฎเซ‡ เช“เช—เชธเซเชŸเชฎเชพเช‚ เชšเชพเชฒเซ€ เชนเชคเซ€. 14 เช“เช—เชธเซเชŸเชจเชพ เชฐเซ‹เชœ, เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชธเชฐเซเชตเชฐเซเชธ เชชเชฐ เช•เช‚เชˆเช• เช…เชชเชกเซ‡เชŸ เชฅเชˆ เชฐเชนเซเชฏเซเช‚ เชนเซ‹เชตเชพเชจเชพ เชธเช‚เชฆเซ‡เชถเชพ เชนเชคเชพ... เช…เชจเซ‡ เชชเช›เซ€ เชฒเซ‹เช—เชฎเชพเช‚:

2019-08-15 09:28:35.880640 MSK warn  main: ANON:87: unknown object type: 0x80d182d1 at TL/Object.pm line 213.
2019-08-15 09:28:35.751899 MSK warn  main: ANON:87: unknown object type: 0xb5223b0f at TL/Object.pm line 213.

เช…เชจเซ‡ เชชเช›เซ€ เชธเซเชŸเซ‡เช• เชŸเซเชฐเซ‡เชธเชจเชพ เช•เซ‡เชŸเชฒเชพเช• เชฎเซ‡เช—เชพเชฌเชพเช‡เชŸเซเชธ (เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡, เชคเซ‡ เชœ เชธเชฎเชฏเซ‡ เชฒเซ‹เช—เชฟเช‚เช— เช เซ€เช• เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚). เช›เซ‡เชตเชŸเซ‡, เชœเซ‹ เชคเชฎเชพเชฐเชพ TL เชฎเชพเช‚ เช•เช‚เชˆเช• เช“เชณเช–เชพเชฏเซ‡เชฒ เชจ เชนเซ‹เชฏ, เชคเซ‹ เชคเซ‡ เชธเชนเซ€ เชฆเซเชตเชพเชฐเชพ เชฆเซเชตเชฟเชธเช‚เช—เซ€ เช›เซ‡, เชตเชงเซ เชจเซ€เชšเซ‡ เชฌเชงเชพ เชœเชพเชฏ เช›เซ‡, เชกเซ€เช•เซ‹เชกเชฟเช‚เช— เช…เชถเช•เซเชฏ เชฌเชจเซ€ เชœเชถเซ‡. เช†เชตเซ€ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚ เชคเชฎเชพเชฐเซ‡ เชถเซเช‚ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช?

เช เซ€เช• เช›เซ‡, เช•เซ‹เชˆเชชเชฃเชจเชพ เชฎเช—เชœเชฎเชพเช‚ เช†เชตเชคเซ€ เชชเซเชฐเชฅเชฎ เชตเชธเซเชคเซ เชกเชฟเชธเซเช•เชจเซ‡เช•เซเชŸ เช•เชฐเซ€เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชชเซเชฐเชฏเชพเชธ เช•เชฐเชตเชพเชจเซ€ เช›เซ‡. เชฎเชฆเชฆ เชจ เช•เชฐเซ€. เช…เชฎเซ‡ CRC32 เช—เซ‚เช—เชฒ เช•เชฐเซ€เช เช›เซ€เช - เช† เชธเซเช•เซ€เชฎ 73 เชจเชพ เช‘เชฌเซเชœเซ‡เช•เซเชŸเซเชธ เชนเซ‹เชตเชพเชจเซเช‚ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชœเซ‹ เช•เซ‡ เช…เชฎเซ‡ 82 เชชเชฐ เช•เชพเชฎ เช•เชฐเซเชฏเซเช‚ เช›เซ‡. เช…เชฎเซ‡ เชฒเซ‹เช—เชจเซ‡ เชงเซเชฏเชพเชจเชฅเซ€ เชœเซ‹เชˆเช เช›เซ€เช - เชคเซเชฏเชพเช‚ เชฌเซ‡ เช…เชฒเช—-เช…เชฒเช— เชธเซเช•เซ€เชฎเชจเชพ เช“เชณเช–เช•เชฐเซเชคเชพเช“ เช›เซ‡!

เช•เชฆเชพเชš เชธเชฎเชธเซเชฏเชพ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เช…เชฎเชพเชฐเชพ เชฌเชฟเชจเชธเชคเซเชคเชพเชตเชพเชฐ เช•เซเชฒเชพเชฏเช‚เชŸเชฎเชพเช‚ เช›เซ‡? เชจเชพ, เช…เชฎเซ‡ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชกเซ‡เชธเซเช•เชŸเซ‹เชช 1.2.17 (เช…เชธเช‚เช–เซเชฏ เชฒเชฟเชจเช•เซเชธ เชตเชฟเชคเชฐเชฃเซ‹เชฎเชพเช‚ เชชเซ‚เชฐเชพ เชชเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เชธเช‚เชธเซเช•เชฐเชฃ) เชฒเซ‹เชจเซเชš เช•เชฐเซ€เช เช›เซ€เช, เชคเซ‡ เช…เชชเชตเชพเชฆ เชฒเซ‹เช— เชชเชฐ เชฒเช–เซ‡ เช›เซ‡: MTP เช…เชจเชชเซ‡เช•เซเชทเชฟเชค เชชเซเชฐเช•เชพเชฐ id #b5223b0f MTPMessageMedia เชฎเชพเช‚ เชตเชพเช‚เชšเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡โ€ฆ

เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎเชจเชพ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เช…เชจเซ‡ เชธเช‚เช—เช เชจเชพเชคเซเชฎเช• เช…เชญเชฟเช—เชฎเซ‹เชจเซ€ เชŸเซ€เช•เชพ. เชญเชพเช— 1, เชคเช•เชจเซ€เช•เซ€: เชถเชฐเซ‚เช†เชคเชฅเซ€ เช•เซเชฒเชพเชฏเชจเซเชŸ เชฒเช–เชตเชพเชจเซ‹ เช…เชจเซเชญเชต - TL, MT

เช—เซ‚เช—เชฒเซ‡ เชฌเชคเชพเชตเซเชฏเซเช‚ เช•เซ‡ เชฌเชฟเชจเชธเชคเซเชคเชพเชตเชพเชฐ เช•เซเชฒเชพเชฏเช‚เชŸเชฎเชพเช‚เชจเชพ เชเช•เชจเซ‡ เชธเชฎเชพเชจ เชธเชฎเชธเซเชฏเชพ เช†เชตเซ€ เชนเชคเซ€, เชชเชฐเช‚เชคเซ เชชเช›เซ€ เชธเช‚เชธเซเช•เชฐเชฃ เชจเช‚เชฌเชฐเซ‹ เช…เชจเซ‡, เชคเซ‡ เชฎเซเชœเชฌ, เชงเชพเชฐเชฃเชพเช“ เช…เชฒเช— เชนเชคเซ€...

เชคเซ‹ เช†เชชเชฃเซ‡ เชถเซเช‚ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช? เชตเซ‡เชธเชฟเชฒเซ€ เช…เชจเซ‡ เชนเซเช‚ เช…เชฒเช— เชฅเชˆ เช—เชฏเชพ: เชคเซ‡เชฃเซ‡ เชธเชฐเซเช•เชฟเชŸเชจเซ‡ 91 เชชเชฐ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹, เชฎเซ‡เช‚ เชฅเซ‹เชกเชพ เชฆเชฟเชตเชธเซ‹ เชฐเชพเชน เชœเซ‹เชตเชพเชจเซเช‚ เช…เชจเซ‡ 73 เชชเชฐ เชชเซเชฐเชฏเชพเชธ เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚. เชฌเช‚เชจเซ‡ เชชเชฆเซเชงเชคเชฟเช“ เช•เชพเชฎ เช•เชฐเชคเซ€ เชนเชคเซ€, เชชเชฐเช‚เชคเซ เชคเซ‡ เชชเซเชฐเชฏเซ‹เช—เชฎเซ‚เชฒเช• เชนเซ‹เชตเชพเชฅเซ€, เชคเชฎเชพเชฐเซ‡ เช•เซ‡เชŸเชฒเชพ เชตเชฐเซเชเชจ เช‰เชชเชฐ เช…เชฅเชตเชพ เชจเซ€เชšเซ‡เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชคเซ‡เชจเซ€ เช•เซ‹เชˆ เชธเชฎเชœเชฃ เชจเชฅเซ€. เช•เซ‚เชฆเช•เซ‹ เชฎเชพเชฐเชตเซ‹, เช…เชฅเชตเชพ เชคเชฎเชพเชฐเซ‡ เช•เซ‡เชŸเชฒเซ‹ เชธเชฎเชฏ เชฐเชพเชน เชœเซ‹เชตเซ€ เชชเชกเชถเซ‡.

เชชเชพเช›เชณเชฅเซ€ เชนเซเช‚ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชจเซ‡ เชชเซเชจเชƒเช‰เชคเซเชชเชพเชฆเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชนเชคเซ‹: เช…เชฎเซ‡ เช•เซเชฒเชพเชฏเช‚เชŸเชจเซ‡ เชฒเซ‹เช‚เชš เช•เชฐเซ€เช เช›เซ€เช, เชคเซ‡เชจเซ‡ เชฌเช‚เชง เช•เชฐเซ€เช เช›เซ€เช, เชธเชฐเซเช•เชฟเชŸเชจเซ‡ เชฌเซ€เชœเชพ เชธเซเชคเชฐเชฎเชพเช‚ เชซเชฐเซ€เชฅเซ€ เช•เชฎเซเชชเชพเช‡เชฒ เช•เชฐเซ€เช เช›เซ€เช, เชซเชฐเซ€เชฅเซ€ เชถเชฐเซ‚ เช•เชฐเซ€เช เช›เซ€เช, เชธเชฎเชธเซเชฏเชพเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชชเช•เชกเซ€เช เช›เซ€เช, เชชเชพเช›เชฒเชพ เชเช• เชชเชฐ เชชเชพเช›เชพ เช†เชตเซ‹ - เช…เชฐเซ‡, เชธเชฐเซเช•เชฟเชŸ เชธเซเชตเชฟเชšเชฟเช‚เช—เชจเซ€ เช•เซ‹เชˆ เชฎเชพเชคเซเชฐเชพ เชจเชฅเซ€ เช…เชจเซ‡ เช•เซเชฒเชพเชฏเช‚เชŸ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เชฅเชพเชฏ เช›เซ‡. เชฅเซ‹เชกเซ€ เชฎเชฟเชจเชฟเชŸเซ‹ เชฎเชฆเชฆ เช•เชฐเชถเซ‡. เชคเชฎเชจเซ‡ เชตเชฟเชตเชฟเชง เชธเซเชคเชฐเซ‹เชฎเชพเช‚เชฅเซ€ เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเช•เซเชšเชฐเซเชธเชจเซเช‚ เชฎเชฟเชถเซเชฐเชฃ เชชเซเชฐเชพเชชเซเชค เชฅเชถเซ‡.

เชธเชฎเชœเซ‚เชคเซ€? เชœเซ‡เชฎ เชคเชฎเซ‡ เชตเชฟเชตเชฟเชง เชชเชฐเซ‹เช•เซเชท เชฒเช•เซเชทเชฃเซ‹ เชชเชฐเชฅเซ€ เช…เชจเซเชฎเชพเชจ เชฒเช—เชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹, เชธเชฐเซเชตเชฐ เชตเชฟเชตเชฟเชง เชฎเชถเซ€เชจเซ‹ เชชเชฐ เชตเชฟเชตเชฟเชง เชชเซเชฐเช•เชพเชฐเชจเซ€ เช˜เชฃเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เชงเชฐเชพเชตเซ‡ เช›เซ‡. เชฎเซ‹เชŸเซ‡ เชญเชพเช—เซ‡, เชธเชฐเซเชตเชฐ เช•เซ‡ เชœเซ‡ "เชฌเชซเชฐเชฟเช‚เช—" เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เช›เซ‡ เชคเซ‡เชจเชพ เช‰เชชเชฐเซ€ เช…เชงเชฟเช•เชพเชฐเซ€เช“เช เชคเซ‡เชจเซ‡ เชœเซ‡ เช†เชชเซเชฏเซเช‚ เชคเซ‡ เช•เชคเชพเชฐเชฎเชพเช‚ เชฎเซ‚เช•เซเชฏเซเช‚, เช…เชจเซ‡ เชคเซ‡เช“เช เชคเซ‡ เชฏเซ‹เชœเชจเชพเชฎเชพเช‚ เช†เชชเซเชฏเซเช‚ เชœเซ‡ เชชเซ‡เชขเซ€เชจเชพ เชธเชฎเชฏเซ‡ เชนเชคเซ€. เช…เชจเซ‡ เช† เช•เชคเชพเชฐ "เชธเชกเซ‡เชฒเซ€" เชจ เชฅเชพเชฏ เชคเซเชฏเชพเช‚ เชธเซเชงเซ€, เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เช•เช‚เช‡ เช•เชฐเซ€ เชถเช•เชพเชคเซเช‚ เชจเชฅเซ€.

เช•เชฆเชพเชš... เชชเชฐเช‚เชคเซ เช† เชเช• เชญเชฏเช‚เช•เชฐ เช•เซเชฐเชš เช›เซ‡?!.. เชจเชพ, เช‰เชจเซเชฎเชคเซเชค เชตเชฟเชšเชพเชฐเซ‹ เชตเชฟเชถเซ‡ เชตเชฟเชšเชพเชฐเชคเชพ เชชเชนเซ‡เชฒเชพ, เชšเชพเชฒเซ‹ เชธเชคเซเชคเชพเชตเชพเชฐ เช—เซเชฐเชพเชนเช•เซ‹เชจเชพ เช•เซ‹เชก เชœเซ‹เชˆเช. เชเชจเซเชกเซเชฐเซ‹เช‡เชก เชตเชฐเซเชเชจเชฎเชพเช‚ เช…เชฎเชจเซ‡ เช•เซ‹เชˆ TL เชชเชพเชฐเซเชธเชฐ เชฎเชณเชคเซเช‚ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช…เชฎเชจเซ‡ (เชกเซ€) เชธเซ€เชฐเซ€เชฏเชฒเชพเช‡เชเซ‡เชถเชจ เชธเชพเชฅเซ‡ เชเช• เชฎเซ‹เชŸเซ€ เชซเชพเช‡เชฒ (เช—เซ€เชŸเชนเชฌ เชคเซ‡เชจเซ‡ เชธเซเชชเชฐเซเชถ เช•เชฐเชตเชพเชจเซ‹ เช‡เชจเช•เชพเชฐ เช•เชฐเซ‡ เช›เซ‡) เชถเซ‹เชงเซ€เช เช›เซ€เช. เช…เชนเซ€เช‚ เช•เซ‹เชก เชธเซเชจเชฟเชชเซ‡เชŸเซเชธ เช›เซ‡:

public static class TL_message_layer68 extends TL_message {
    public static int constructor = 0xc09be45f;
//...
//ะตั‰ะต ะฟะฐั‡ะบะฐ ะฟะพะดะพะฑะฝั‹ั…
//...
    public static class TL_message_layer47 extends TL_message {
        public static int constructor = 0xc992e15c;
        public static Message TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) {
            Message result = null;
            switch (constructor) {
                case 0x1d86f70e:
                    result = new TL_messageService_old2();
                    break;
                case 0xa7ab1991:
                    result = new TL_message_old3();
                    break;
                case 0xc3060325:
                    result = new TL_message_old4();
                    break;
                case 0x555555fa:
                    result = new TL_message_secret();
                    break;
                case 0x555555f9:
                    result = new TL_message_secret_layer72();
                    break;
                case 0x90dddc11:
                    result = new TL_message_layer72();
                    break;
                case 0xc09be45f:
                    result = new TL_message_layer68();
                    break;
                case 0xc992e15c:
                    result = new TL_message_layer47();
                    break;
                case 0x5ba66c13:
                    result = new TL_message_old7();
                    break;
                case 0xc06b9607:
                    result = new TL_messageService_layer48();
                    break;
                case 0x83e5de54:
                    result = new TL_messageEmpty();
                    break;
                case 0x2bebfa86:
                    result = new TL_message_old6();
                    break;
                case 0x44f9b43d:
                    result = new TL_message_layer104();
                    break;
                case 0x1c9b1027:
                    result = new TL_message_layer104_2();
                    break;
                case 0xa367e716:
                    result = new TL_messageForwarded_old2(); //custom
                    break;
                case 0x5f46804:
                    result = new TL_messageForwarded_old(); //custom
                    break;
                case 0x567699b3:
                    result = new TL_message_old2(); //custom
                    break;
                case 0x9f8d60bb:
                    result = new TL_messageService_old(); //custom
                    break;
                case 0x22eb6aba:
                    result = new TL_message_old(); //custom
                    break;
                case 0x555555F8:
                    result = new TL_message_secret_old(); //custom
                    break;
                case 0x9789dac4:
                    result = new TL_message_layer104_3();
                    break;

เช…เชฅเชตเชพ

    boolean fixCaption = !TextUtils.isEmpty(message) &&
    (media instanceof TLRPC.TL_messageMediaPhoto_old ||
     media instanceof TLRPC.TL_messageMediaPhoto_layer68 ||
     media instanceof TLRPC.TL_messageMediaPhoto_layer74 ||
     media instanceof TLRPC.TL_messageMediaDocument_old ||
     media instanceof TLRPC.TL_messageMediaDocument_layer68 ||
     media instanceof TLRPC.TL_messageMediaDocument_layer74)
    && message.startsWith("-1");

เชนเชฎเซเชฎ... เชœเช‚เช—เชฒเซ€ เชฒเชพเช—เซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ, เช•เชฆเชพเชš, เช† เชœเชจเชฐเซ‡เชŸเซ‡เชก เช•เซ‹เชก เช›เซ‡, เชชเช›เซ€ เช เซ€เช• เช›เซ‡?.. เชชเชฐเช‚เชคเซ เชคเซ‡ เชšเซ‹เช•เซเช•เชธเชชเชฃเซ‡ เชคเชฎเชพเชฎ เชธเช‚เชธเซเช•เชฐเชฃเซ‹เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡! เชธเชพเชšเซเช‚, เชคเซ‡ เชธเซเชชเชทเซเชŸ เชจเชฅเซ€ เช•เซ‡ เชถเชพ เชฎเชพเชŸเซ‡ เชฌเชงเซเช‚ เชเช• เชธเชพเชฅเซ‡ เชฎเชฟเชถเซเชฐเชฟเชค เช›เซ‡, เช—เซเชชเซเชค เชšเซ‡เชŸเซเชธ เช…เชจเซ‡ เชคเชฎเชพเชฎ เชชเซเชฐเช•เชพเชฐเชจเชพ _old7 เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เชฎเชถเซ€เชจ เชœเชจเชฐเซ‡เชถเชจ เชœเซ‡เชตเซ‹ เชฆเซ‡เช–เชพเชคเซ‹ เชจเชฅเซ€... เชœเซ‹ เช•เซ‡, เชธเซŒเชฅเซ€ เชตเชงเซ เชนเซเช‚ เชคเซ‡เชจเชพเชฅเซ€ เช‰เชกเซ€ เช—เชฏเซ‹ เชนเชคเซ‹

TL_message_layer104
TL_message_layer104_2
TL_message_layer104_3

เชฎเชฟเชคเซเชฐเซ‹, เชถเซเช‚ เชคเชฎเซ‡ เชเช• เชธเซเชคเชฐเชจเซ€ เช…เช‚เชฆเชฐ เชถเซเช‚ เช›เซ‡ เชคเซ‡ เชชเชฃ เชจเช•เซเช•เซ€ เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€?! เชธเชพเชฐเซเช‚, เช เซ€เช• เช›เซ‡, เชšเชพเชฒเซ‹ เช•เชนเซ€เช เช•เซ‡ "เชฌเซ‡" เชเช• เชญเซ‚เชฒ เชธเชพเชฅเซ‡ เชฐเชฟเชฒเซ€เช เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€, เชธเชพเชฐเซเช‚, เชคเซ‡ เชฅเชพเชฏ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซเชฐเชฃ?.. เชคเชฐเชค เชœ, เชซเชฐเซ€เชฅเซ€ เช เชœ เชฐเซ‡เช•? เช† เช•เซ‡เชตเชพ เชชเซเชฐเช•เชพเชฐเชจเซ€ เชชเซ‹เชฐเซเชจเซ‹เช—เซเชฐเชพเชซเซ€ เช›เซ‡, เชฎเชพเชซ เช•เชฐเชถเซ‹?..

เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชกเซ‡เชธเซเช•เชŸเซ‹เชชเชจเชพ เชธเซ‹เชฐเซเชธ เช•เซ‹เชกเชฎเชพเช‚, เชฎเชพเชฐเซเช— เชฆเซเชตเชพเชฐเชพ, เชเช• เชธเชฎเชพเชจ เชตเชธเซเชคเซ เชฅเชพเชฏ เช›เซ‡ - เชœเซ‹ เชเชฎ เชนเซ‹เชฏ, เชคเซ‹ เชฏเซ‹เชœเชจเชพเชฎเชพเช‚ เชเช• เชชเช‚เช•เซเชคเชฟเชฎเชพเช‚ เช…เชจเซ‡เช• เช•เชฎเชฟเชŸเซเชธ เชคเซ‡เชจเชพ เชฒเซ‡เชฏเชฐ เชจเช‚เชฌเชฐเชจเซ‡ เชฌเชฆเชฒเชคเชพ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช•เช‚เชˆเช• เช เซ€เช• เช•เชฐเซ‹. เชธเซเช•เซ€เชฎ เชฎเชพเชŸเซ‡ เชกเซ‡เชŸเชพเชจเซ‹ เช•เซ‹เชˆ เช…เชงเชฟเช•เซƒเชค เชธเซเชคเซเชฐเซ‹เชค เชจ เชนเซ‹เชฏ เชคเซ‡เชตเซ€ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚, เชธเชคเซเชคเชพเชตเชพเชฐ เช•เซเชฒเชพเชฏเชจเซเชŸเชจเชพ เชธเซเชคเซเชฐเซ‹เชค เช•เซ‹เชก เชธเชฟเชตเชพเชฏ เชคเซ‡ เช•เซเชฏเชพเช‚เชฅเซ€ เชฎเซ‡เชณเชตเซ€ เชถเช•เชพเชฏ? เช…เชจเซ‡ เชœเซ‹ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชคเซเชฏเชพเช‚เชฅเซ€ เชฒเซ‹ เช›เซ‹, เชคเซ‹ เชœเซเชฏเชพเช‚ เชธเซเชงเซ€ เชคเชฎเซ‡ เชฌเชงเซ€ เชชเชฆเซเชงเชคเชฟเช“เชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เชจ เช•เชฐเซ‹ เชคเซเชฏเชพเช‚ เชธเซเชงเซ€ เชคเชฎเซ‡ เช–เชพเชคเชฐเซ€ เชจ เช•เชฐเซ€ เชถเช•เซ‹ เช•เซ‡ เชฏเซ‹เชœเชจเชพ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชธเชพเชšเซ€ เช›เซ‡.

เช† เชชเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเซ€ เชถเช•เชพเชฏ? เชนเซเช‚ เช†เชถเชพ เชฐเชพเช–เซเช‚ เช›เซเช‚ เช•เซ‡ เชเช•เชฎ, เช•เชพเชฐเซเชฏเชพเชคเซเชฎเช• เช…เชจเซ‡ เช…เชจเซเชฏ เชชเชฐเซ€เช•เซเชทเชฃเซ‹เชจเชพ เชšเชพเชนเช•เซ‹ เชŸเชฟเชชเซเชชเชฃเซ€เช“เชฎเชพเช‚ เชถเซ‡เชฐ เช•เชฐเชถเซ‡.

เช เซ€เช• เช›เซ‡, เชšเชพเชฒเซ‹ เช•เซ‹เชกเชจเซ‹ เชฌเซ€เชœเซ‹ เชญเชพเช— เชœเซ‹เชˆเช:

public static class TL_folders_deleteFolder extends TLObject {
    public static int constructor = 0x1c295881;

    public int folder_id;

    public TLObject deserializeResponse(AbstractSerializedData stream, int constructor, boolean exception) {
        return Updates.TLdeserialize(stream, constructor, exception);
    }

    public void serializeToStream(AbstractSerializedData stream) {
        stream.writeInt32(constructor);
        stream.writeInt32(folder_id);
    }
}

//manually created

//RichText start
public static abstract class RichText extends TLObject {
    public String url;
    public long webpage_id;
    public String email;
    public ArrayList<RichText> texts = new ArrayList<>();
    public RichText parentRichText;

    public static RichText TLdeserialize(AbstractSerializedData stream, int constructor, boolean exception) {
        RichText result = null;
        switch (constructor) {
            case 0x1ccb966a:
                result = new TL_textPhone();
                break;
            case 0xc7fb5e01:
                result = new TL_textSuperscript();
                break;

เช† เชŸเชฟเชชเซเชชเชฃเซ€ "เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เชฌเชจเชพเชตเซ‡เชฒ" เชธเซ‚เชšเชตเซ‡ เช›เซ‡ เช•เซ‡ เช† เชซเชพเช‡เชฒเชจเซ‹ เชฎเชพเชคเซเชฐ เชเช• เชญเชพเช— เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹ (เชถเซเช‚ เชคเชฎเซ‡ เช†เช–เชพ เชœเชพเชณเชตเชฃเซ€เชจเชพ เชฆเซเชƒเชธเซเชตเชชเซเชจเชจเซ€ เช•เชฒเซเชชเชจเชพ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹?), เช…เชจเซ‡ เชฌเชพเช•เซ€เชจเซเช‚ เชฎเชถเซ€เชจ-เชœเชจเชฐเซ‡เชŸเซ‡เชก เชนเชคเซเช‚. เชœเซ‹ เช•เซ‡, เชชเช›เซ€ เชฌเซ€เชœเซ‹ เชชเซเชฐเชถเซเชจ เชŠเชญเซ‹ เชฅเชพเชฏ เช›เซ‡ - เชคเซ‡ เชธเซเชคเซเชฐเซ‹เชคเซ‹ เช‰เชชเชฒเชฌเซเชง เช›เซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชจเชฅเซ€ (เชฒเชฟเชจเช•เซเชธ เช•เชฐเซเชจเชฒเชฎเชพเช‚ la GPL เชฌเซเชฒเซ‹เชฌเซเชธ), เชชเชฐเช‚เชคเซ เช† เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชฌเซ€เชœเชพ เชญเชพเช— เชฎเชพเชŸเซ‡เชจเซ‹ เชตเชฟเชทเชฏ เช›เซ‡.

เชชเชฐเช‚เชคเซ เชชเชฐเซเชฏเชพเชชเซเชค. เชšเชพเชฒเซ‹ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชชเชฐ เช†เช—เชณ เชตเชงเซ€เช เชœเซ‡เชจเซ€ เช‰เชชเชฐ เช† เชฌเชงเซ€ เชธเซ€เชฐเซ€เชฏเชฒเชพเช‡เชเซ‡เชถเชจ เชšเชพเชฒเซ‡ เช›เซ‡.

เชเชฎเชŸเซ€เชชเซ€เชŸเซเชฐเซ‹เชŸเซ‹

เชคเซ‹, เชšเชพเชฒเซ‹ เช–เซ‹เชฒเซ€เช เชธเชพเชฎเชพเชจเซเชฏ เชตเชฐเซเชฃเชจ ะธ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซเช‚ เชตเชฟเช—เชคเชตเชพเชฐ เชตเชฐเซเชฃเชจ เช…เชจเซ‡ เชชเซเชฐเชฅเชฎ เชตเชธเซเชคเซ เชœเซ‡ เช†เชชเชฃเซ‡ เช เซ‹เช•เชฐ เช–เชพเชˆเช เช›เซ€เช เชคเซ‡ เช›เซ‡ เชชเชฐเชฟเชญเชพเชทเชพ. เช…เชจเซ‡ เชฆเชฐเซ‡เช• เชตเชธเซเชคเซเชจเซ€ เชตเชฟเชชเซเชฒเชคเชพ เชธเชพเชฅเซ‡. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เช† เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎเชจเซ€ เชฎเชพเชฒเชฟเช•เซ€เชจเซเช‚ เชฒเช•เซเชทเชฃ เชนเซ‹เชฏ เชคเซ‡เชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡ - เช…เชฒเช—-เช…เชฒเช— เชœเช—เซเชฏเชพเช เชตเชธเซเชคเซเช“เชจเซ‡ เช…เชฒเช—-เช…เชฒเช— เชฐเซ€เชคเซ‡ เช•เซ‰เชฒ เช•เชฐเชตเซ€, เช…เชฅเชตเชพ เชเช• เชถเชฌเซเชฆเชฅเซ€ เช…เชฒเช—-เช…เชฒเช— เชตเชธเซเชคเซเช“ เช•เชฐเชตเซ€, เช…เชฅเชตเชพ เชŠเชฒเชŸเซเช‚ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช‰เชšเซเชš-เชธเซเชคเชฐเชจเชพ APIเชฎเชพเช‚, เชœเซ‹ เชคเชฎเซ‡ เชธเซเชŸเซ€เช•เชฐ เชชเซ‡เช• เชœเซเช“ เช›เซ‹, เชคเซ‹ เชคเซ‡ เชจเชฅเซ€. เชคเชฎเซ‡ เชถเซเช‚ เชตเชฟเชšเชพเชฐเซเชฏเซเช‚).

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, "เชธเช‚เชฆเซ‡เชถ" เช…เชจเซ‡ "เชธเชคเซเชฐ" เชจเซ‹ เช…เชฐเซเชฅ เช…เชนเซ€เช‚ เชธเชพเชฎเชพเชจเซเชฏ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เช•เซเชฒเชพเชฏเช‚เชŸ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เช•เชฐเชคเชพเช‚ เช•เช‚เชˆเช• เช…เชฒเช— เช›เซ‡. เช เซ€เช• เช›เซ‡, เชธเช‚เชฆเซ‡เชถ เชธเชพเชฅเซ‡ เชฌเชงเซเช‚ เชธเซเชชเชทเซเชŸ เช›เซ‡, เชคเซ‡เชจเซ‡ OOP เชถเชฌเซเชฆเซ‹เชฎเชพเช‚ เช…เชฐเซเชฅเช˜เชŸเชจ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เช…เชฅเชตเชพ เชซเช•เซเชค "เชชเซ‡เช•เซ‡เชŸ" เชถเชฌเซเชฆ เชคเชฐเซ€เช•เซ‡ เช“เชณเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ - เช† เชเช• เชจเซ€เชšเซเช‚, เชชเชฐเชฟเชตเชนเชจ เชธเซเชคเชฐ เช›เซ‡, เชคเซเชฏเชพเช‚ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชœเซ‡เชตเชพ เชœ เชธเช‚เชฆเซ‡เชถเชพ เชจเชฅเซ€, เช˜เชฃเชพ เชธเซ‡เชตเชพ เชธเช‚เชฆเซ‡เชถเชพเช“ เช›เซ‡ . เชชเชฐเช‚เชคเซ เชธเชคเซเชฐ... เชชเชฐเช‚เชคเซ เชชเซเชฐเชฅเชฎ เชตเชธเซเชคเซเช“ เชชเซเชฐเชฅเชฎ.

เชชเชฐเชฟเชตเชนเชจ เชธเซเชคเชฐ

เชชเซเชฐเชฅเชฎ เชตเชธเซเชคเซ เชชเชฐเชฟเชตเชนเชจ เช›เซ‡. เชคเซ‡เช“ เช…เชฎเชจเซ‡ 5 เชตเชฟเช•เชฒเซเชชเซ‹ เชตเชฟเชถเซ‡ เชœเชฃเชพเชตเชถเซ‡:

  • เชŸเซ€เชธเซ€เชชเซ€
  • เชตเซ‡เชฌเชธเซ‹เช•เซ‡เชŸ
  • HTTPS เชชเชฐ เชตเซ‡เชฌเชธเซ‹เช•เซ‡เชŸ
  • HTTP
  • HTTPS

เชตเซ‡เชธเชฟเชฒเซ€, [15.06.18 15:04] UDP เชชเชฐเชฟเชตเชนเชจ เชชเชฃ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เซƒเชค เชจเชฅเซ€

เช…เชจเซ‡ เชคเซเชฐเชฃ เชตเซ‡เชฐเชฟเช…เชจเซเชŸเชฎเชพเช‚ TCP

เชชเชนเซ‡เชฒเซเช‚ TCP เชชเชฐ UDP เชœเซ‡เชตเซเช‚ เชœ เช›เซ‡, เชฆเชฐเซ‡เช• เชชเซ‡เช•เซ‡เชŸเชฎเชพเช‚ เช•เซเชฐเชฎ เชจเช‚เชฌเชฐ เช…เชจเซ‡ crcเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡
เชถเชพ เชฎเชพเชŸเซ‡ เช•เชพเชฐเซเชŸ เชชเชฐเชจเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เชตเชพเช‚เชšเชตเชพเชฅเซ€ เช†เชŸเชฒเซเช‚ เชชเซ€เชกเชพเชฆเชพเชฏเช• เช›เซ‡?

เชธเชพเชฐเซเช‚, เชคเซ‡ เชนเชตเซ‡ เช›เซ‡ TCP เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ 4 เชšเชฒเซ‹เชฎเชพเช‚ เช›เซ‡:

  • เชธเช‚เช•เซเชทเชฟเชชเซเชคเชฎเชพเช‚
  • เชฎเชงเซเชฏเชฎ
  • เช—เชพเชฆเซ€เชตเชพเชณเชพเช‚ เชฎเชงเซเชฏเชตเชฐเซเชคเซ€
  • เชชเซ‚เชฐเซเชฃ

เช เซ€เช• เช›เซ‡, MTProxy เชฎเชพเชŸเซ‡ เชชเซ‡เชกเซ‡เชก เช‡เชจเซเชŸเชฐเชฎเซ€เชกเชฟเชฏเซ‡เชŸ, เช† เชชเช›เซ€เชฅเซ€ เชœเชพเชฃเซ€เชคเซ€ เช˜เชŸเชจเชพเช“เชจเซ‡ เช•เชพเชฐเชฃเซ‡ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚. เชชเชฐเช‚เชคเซ เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชเช• เชธเชพเชฅเซ‡ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ‹ เชคเซเชฏเชพเชฐเซ‡ เชถเชพ เชฎเชพเชŸเซ‡ เชตเชงเซ เชฌเซ‡ เชธเช‚เชธเซเช•เชฐเชฃเซ‹ (เช•เซเชฒ เชคเซเชฐเชฃ)? เชฎเซเช–เซเชฏ MTProtoเชจเซ€ เชฒเช‚เชฌเชพเชˆ เช…เชจเซ‡ เชชเซ‡เชฒเซ‹เชก เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชธเซ‡เชŸ เช•เชฐเชตเซ€ เชคเซ‡ เชšเชพเชฐเซ‡เชฏ เช†เชตเชถเซเชฏเช•เชชเชฃเซ‡ เช…เชฒเช— เชชเชกเซ‡ เช›เซ‡, เชœเซ‡เชจเซ€ เช†เช—เชณ เชšเชฐเซเชšเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡:

  • เชธเช‚เช•เซเชทเชฟเชชเซเชคเชฎเชพเช‚ เชคเซ‡ 1 เช…เชฅเชตเชพ 4 เชฌเชพเช‡เชŸเซเชธ เช›เซ‡, เชชเชฐเช‚เชคเซ 0xef เชจเชนเซ€เช‚, เชชเช›เซ€ เชถเชฐเซ€เชฐ
  • เช‡เชจเซเชŸเชฐเชฎเซ€เชกเชฟเชฏเซ‡เชŸเชฎเชพเช‚ เช† 4 เชฌเชพเช‡เชŸเซเชธ เชฒเช‚เชฌเชพเชˆ เช…เชจเซ‡ เชซเซ€เชฒเซเชก เช›เซ‡, เช…เชจเซ‡ เชชเซเชฐเชฅเชฎ เชตเช–เชค เช•เซเชฒเชพเชฏเช‚เชŸเซ‡ เชฎเซ‹เช•เชฒเชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡ 0xeeeeeeee เชคเซ‡ เชฎเชงเซเชฏเชตเชฐเซเชคเซ€ เช›เซ‡ เชคเซ‡ เชฆเชฐเซเชถเชพเชตเชตเชพ เชฎเชพเชŸเซ‡
  • เชธเช‚เชชเซ‚เชฐเซเชฃ เชฐเซ€เชคเซ‡, เชจเซ‡เชŸเชตเชฐเซเช•เชฐเชจเชพ เชฆเซƒเชทเซเชŸเชฟเช•เซ‹เชฃเชฅเซ€, เชธเซŒเชฅเซ€ เชตเชงเซ เชตเซเชฏเชธเชจเช•เชพเชฐเช•: เชฒเช‚เชฌเชพเชˆ, เช•เซเชฐเชฎ เชจเช‚เชฌเชฐ, เช…เชจเซ‡ เชคเซ‡ เชเช• เชจเชนเซ€เช‚ เชœเซ‡ เชฎเซเช–เซเชฏเชคเซเชตเซ‡ MTProto, เชถเชฐเซ€เชฐ, CRC32 เช›เซ‡. เชนเชพ, เช† เชฌเชงเซเช‚ TCP เชจเซ€ เชŸเซ‹เชš เชชเชฐ เช›เซ‡. เชœเซ‡ เช…เชฎเชจเซ‡ เช•เซเชฐเชฎเชฟเช• เชฌเชพเชˆเชŸ เชธเซเชŸเซเชฐเซ€เชฎเชจเชพ เชฐเซ‚เชชเชฎเชพเช‚ เชตเชฟเชถเซเชตเชธเชจเซ€เชฏ เชชเชฐเชฟเชตเชนเชจ เชชเซ‚เชฐเซเช‚ เชชเชพเชกเซ‡ เช›เซ‡; เช•เซ‹เชˆ เชธเชฟเช•เซเชตเชจเซเชธเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชšเซ‡เช•เชธเชฎเซเชธเชจเซ€. เช เซ€เช• เช›เซ‡, เชนเชตเซ‡ เช•เซ‹เชˆ เชฎเชพเชฐเซ€ เชธเชพเชฎเซ‡ เชตเชพเช‚เชงเซ‹ เช‰เช เชพเชตเชถเซ‡ เช•เซ‡ TCP เชชเชพเชธเซ‡ 16-เชฌเซ€เชŸ เชšเซ‡เช•เชธเชฎ เช›เซ‡, เชคเซ‡เชฅเซ€ เชกเซ‡เชŸเชพ เช•เชฐเชชเซเชถเชจ เชฅเชพเชฏ เช›เซ‡. เชธเชฐเชธ, เชชเชฐเช‚เชคเซ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชตเชพเชธเซเชคเชตเชฎเชพเช‚ 16 เชฌเชพเช‡เชŸเซเชธเชฅเซ€ เชตเชงเซ เชฒเชพเช‚เชฌเซ€ เชนเซ‡เชถ เชธเชพเชฅเซ‡เชจเซ‹ เช•เซเชฐเชฟเชชเซเชŸเซ‹เช—เซเชฐเชพเชซเชฟเช• เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เช›เซ‡, เช† เชฌเชงเซ€ เชญเซ‚เชฒเซ‹ - เช…เชจเซ‡ เชคเซ‡เชจเชพเชฅเซ€ เชชเชฃ เชตเชงเซ - เช‰เชšเซเชš เชธเซเชคเชฐเซ‡ SHA เชฎเชฟเชธเชฎเซ‡เชš เชฆเซเชตเชพเชฐเชพ เชชเช•เชกเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เช†เชจเชพ เช‰เชชเชฐ CRC32 เชฎเชพเช‚ เช•เซ‹เชˆ เชฌเชฟเช‚เชฆเซ เชจเชฅเซ€.

เชšเชพเชฒเซ‹ เชธเช‚เช•เซเชทเชฟเชชเซเชคเชจเซ€ เชคเซเชฒเชจเชพ เช•เชฐเซ€เช, เชœเซ‡เชฎเชพเช‚ เชเช• เชฌเชพเชˆเชŸ เชฒเช‚เชฌเชพเชˆ เชถเช•เซเชฏ เช›เซ‡, เชฎเชงเซเชฏเชตเชฐเซเชคเซ€ เชธเชพเชฅเซ‡, เชœเซ‡ "เชœเซ‹ 4-เชฌเชพเชˆเชŸ เชกเซ‡เชŸเชพ เช—เซ‹เช เชตเชฃเซ€เชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เชคเซ‹" เชตเชพเชœเชฌเซ€ เช เซ‡เชฐเชตเซ‡ เช›เซ‡, เชœเซ‡ เชคเชฆเซเชฆเชจ เชตเชพเชนเชฟเชฏเชพเชค เช›เซ‡. เชถเซเช‚, เชเชตเซเช‚ เชฎเชพเชจเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช•เซ‡ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซเชธ เชเชŸเชฒเชพ เช…เชธเชฎเชฐเซเชฅ เช›เซ‡ เช•เซ‡ เชคเซ‡เช“ เชธเซ‰เช•เซ‡เชŸเชฎเชพเช‚เชฅเซ€ เชธเช‚เชฐเซ‡เช–เชฟเชค เชฌเชซเชฐเชฎเชพเช‚ เชกเซ‡เชŸเชพ เชตเชพเช‚เชšเซ€ เชถเช•เชคเชพ เชจเชฅเซ€? เชคเชฎเชพเชฐเซ‡ เชนเชœเซ€ เชชเชฃ เช† เช•เชฐเชตเซเช‚ เชชเชกเชถเซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชตเชพเช‚เชšเชจ เชคเชฎเชจเซ‡ เช—เชฎเซ‡ เชคเซ‡เชŸเชฒเชพ เชฌเชพเช‡เชŸเซเชธ เชชเชฐเชค เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ (เช…เชจเซ‡ เชคเซเชฏเชพเช‚ เชชเซเชฐเซ‹เช•เซเชธเซ€ เชธเชฐเซเชตเชฐเซเชธ เชชเชฃ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡...). เช…เชฅเชตเชพ เชฌเซ€เชœเซ€ เชฌเชพเชœเซ, เชœเซ‹ เช†เชชเชฃเซ€ เชชเชพเชธเซ‡ เชนเชœเซ เชชเชฃ 16 เชฌเชพเชˆเชŸเซเชธเชจเซ€ เชŸเซ‹เชš เชชเชฐ เชญเชพเชฐเซ‡ เชชเซ‡เชกเชฟเช‚เช— เชนเชถเซ‡ เชคเซ‹ เชธเช‚เช•เซเชทเชฟเชชเซเชคเชฎเชพเช‚ เช•เซ‡เชฎ เชฌเซเชฒเซ‹เช• เช•เชฐเซ‹ - 3 เชฌเชพเชˆเชŸ เชฌเชšเชพเชตเซ‹ เช•เซเชฏเชพเชฐเซ‡เช• ?

เช•เซ‹เชˆเชจเซ‡ เชเชตเซ€ เช›เชพเชช เชฎเชณเซ‡ เช›เซ‡ เช•เซ‡ เชจเชฟเช•เซ‹เชฒเชพเชˆ เชฆเซเชฐเซ‹เชต เช–เชฐเซ‡เช–เชฐ เช•เซ‹เชˆเชชเชฃ เชตเชพเชธเซเชคเชตเชฟเช• เชตเซเชฏเชตเชนเชพเชฐเชฟเช• เชœเชฐเซ‚เชฐเชฟเชฏเชพเชค เชตเชฟเชจเชพ, เชจเซ‡เชŸเชตเชฐเซเช• เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชธเชนเชฟเชค เชตเซเชนเซ€เชฒเซเชธเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชถเซ‹เชงเชตเชพเชจเซเช‚ เชชเชธเช‚เชฆ เช•เชฐเซ‡ เช›เซ‡.

เช…เชจเซเชฏ เชชเชฐเชฟเชตเชนเชจ เชตเชฟเช•เชฒเซเชชเซ‹, เชธเชนเชฟเชค. เชตเซ‡เชฌ เช…เชจเซ‡ MTProxy, เช…เชฎเซ‡ เชนเชตเซ‡ เชตเชฟเชšเชพเชฐเซ€เชถเซเช‚ เชจเชนเซ€เช‚, เช•เชฆเชพเชš เชฌเซ€เชœเซ€ เชชเซ‹เชธเซเชŸเชฎเชพเช‚, เชœเซ‹ เชตเชฟเชจเช‚เชคเซ€ เชนเชถเซ‡ เชคเซ‹. เช† เชœ MTProxy เชตเชฟเชถเซ‡, เชšเชพเชฒเซ‹ เชนเชฎเชฃเชพเช‚ เชœ เชฏเชพเชฆ เชฐเชพเช–เซ€เช เช•เซ‡ 2018 เชฎเชพเช‚ เชฐเชฟเชฒเซ€เช เชฅเชฏเชพเชจเชพ เชฅเซ‹เชกเชพ เชธเชฎเชฏ เชชเช›เซ€, เชชเซเชฐเชฆเชพเชคเชพเช“เช เชเชกเชชเชฅเซ€ เชคเซ‡เชจเซ‡ เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเชตเชพเชจเซเช‚ เชถเซ€เช–เซ€ เชฒเซ€เชงเซเช‚ เชนเชคเซเช‚, เชœเซ‡เชจเซ‹ เชนเซ‡เชคเซ เชฌเชพเชฏเชชเชพเชธ เชฌเซเชฒเซ‹เช•เซ€เช‚เช—เชฆเซเชตเชพเชฐเชพ เชชเซ‡เช•เซ‡เชœ เช•เชฆ! เช…เชจเซ‡ เช เชชเชฃ เชนเช•เซ€เช•เชค เช เช›เซ‡ เช•เซ‡ C เชฎเชพเช‚ เชฒเช–เชพเชฏเซ‡เชฒ MTProxy เชธเชฐเซเชตเชฐ (เชซเชฐเซ€เชฅเซ€ เชตเซ‹เชฒเซเชŸเชฎเซ‡เชจ เชฆเซเชตเชพเชฐเชพ) เชฒเชฟเชจเช•เซเชธ เชตเชฟเชถเชฟเชทเซเชŸเชคเชพเช“ เชธเชพเชฅเซ‡ เชตเชงเซ เชชเชกเชคเซเช‚ เชœเซ‹เชกเชพเชฏเซ‡เชฒเซเช‚ เชนเชคเซเช‚, เชœเซ‹ เช•เซ‡ เช† เชฌเชฟเชฒเช•เซเชฒ เชœเชฐเซ‚เชฐเซ€ เชจ เชนเชคเซเช‚ (เชซเชฟเชฒ เช•เซเชฒเซ€เชจ เชชเซเชทเซเชŸเชฟ เช•เชฐเชถเซ‡), เช…เชจเซ‡ เชคเซ‡ เชธเชฎเชพเชจ เชธเชฐเซเชตเชฐ เช•เชพเช‚ เชคเซ‹ Go เช…เชฅเชตเชพ Node.js เชฎเชพเช‚ เชนเชถเซ‡. เชธเซ‹ เช•เชฐเชคเชพเช‚ เช“เช›เซ€ เชฒเชพเช‡เชจเชฎเชพเช‚ เชซเชฟเชŸ.

เชชเชฐเช‚เชคเซ เช…เชฎเซ‡ เช…เชจเซเชฏ เชฎเซเชฆเซเชฆเชพเช“เชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ€เชงเชพ เชชเช›เซ€ เชตเชฟเชญเชพเช—เชจเชพ เช…เช‚เชคเซ‡ เช† เชฒเซ‹เช•เซ‹เชจเซ€ เชคเช•เชจเซ€เช•เซ€ เชธเชพเช•เซเชทเชฐเชคเชพ เชตเชฟเชถเซ‡ เชคเชพเชฐเชฃเซ‹ เชฆเซ‹เชฐเซ€เชถเซเช‚. เชนเชฎเชฃเชพเช‚ เชฎเชพเชŸเซ‡, เชšเชพเชฒเซ‹ OSI เชธเซเชคเชฐ 5, เชธเชคเซเชฐ เชคเชฐเชซ เช†เช—เชณ เชตเชงเซ€เช - เชœเซ‡เชจเชพ เชชเชฐ เชคเซ‡เช“เช MTProto เชธเชคเซเชฐ เชฎเซ‚เช•เซเชฏเซเช‚.

เช•เซ€, เชธเช‚เชฆเซ‡เชถเชพเช“, เชธเชคเซเชฐเซ‹, เชกเชฟเชซเซ€-เชนเซ‡เชฒเชฎเซ‡เชจ

เชคเซ‡เช“เช เชคเซ‡เชจเซ‡ เชคเซเชฏเชพเช‚ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เชฎเซ‚เช•เซเชฏเซเช‚ เชจเชฅเซ€... เชธเชคเซเชฐ เช เช เชœ เชธเชคเซเชฐ เชจเชฅเซ€ เชœเซ‡ เชธเช•เซเชฐเชฟเชฏ เชธเชคเซเชฐเซ‹ เชนเซ‡เช เชณเชจเชพ เช‡เชจเซเชŸเชฐเชซเซ‡เชธเชฎเชพเช‚ เชฆเซ‡เช–เชพเชฏ เช›เซ‡. เชชเชฐเช‚เชคเซ เช•เซเชฐเชฎเชฎเชพเช‚.

เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎเชจเชพ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เช…เชจเซ‡ เชธเช‚เช—เช เชจเชพเชคเซเชฎเช• เช…เชญเชฟเช—เชฎเซ‹เชจเซ€ เชŸเซ€เช•เชพ. เชญเชพเช— 1, เชคเช•เชจเซ€เช•เซ€: เชถเชฐเซ‚เช†เชคเชฅเซ€ เช•เซเชฒเชพเชฏเชจเซเชŸ เชฒเช–เชตเชพเชจเซ‹ เช…เชจเซเชญเชต - TL, MT

เชคเซ‡เชฅเซ€ เช…เชฎเชจเซ‡ เชชเชฐเชฟเชตเชนเชจ เชธเซเชคเชฐเชฎเชพเช‚เชฅเซ€ เชœเชพเชฃเซ€เชคเซ€ เชฒเช‚เชฌเชพเชˆเชจเซ€ เชฌเชพเชˆเชŸ เชธเซเชŸเซเชฐเชฟเช‚เช— เชฎเชณเซ€. เช† เช•เชพเช‚ เชคเซ‹ เชเชจเซเช•เซเชฐเชฟเชชเซเชŸเซ‡เชก เชธเช‚เชฆเซ‡เชถ เช…เชฅเชตเชพ เชธเชพเชฆเซ‹ เชฒเช–เชพเชฃ เช›เซ‡ - เชœเซ‹ เช†เชชเชฃเซ‡ เชนเชœเซ€ เชชเชฃ เชฎเซเช–เซเชฏ เช•เชฐเชพเชฐเชจเชพ เชคเชฌเช•เซเช•เซ‡ เช›เซ€เช เช…เชจเซ‡ เช–เชฐเซ‡เช–เชฐ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช. เช†เชชเชฃเซ‡ "เช•เซ€" เชคเชฐเซ€เช•เซ‡ เช“เชณเช–เชพเชคเชพ เช–เซเชฏเชพเชฒเซ‹เชจเชพ เชธเชฎเซ‚เชนเชฎเชพเช‚เชฅเซ€ เช•เชฏเชพ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช? เชšเชพเชฒเซ‹ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชŸเซ€เชฎ เชฎเชพเชŸเซ‡ เชœ เช† เชฎเซเชฆเซเชฆเชพเชจเซ‡ เชธเซเชชเชทเซเชŸ เช•เชฐเซ€เช (เชนเซเช‚ เชธเชตเชพเชฐเซ‡ 4 เชตเชพเช—เซเชฏเซ‡ เชฅเชพเช•เซ‡เชฒเชพ เชฎเช—เชœ เชธเชพเชฅเซ‡ เช…เช‚เช—เซเชฐเซ‡เชœเซ€เชฎเชพเช‚เชฅเซ€ เชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹เชจเซเช‚ เชญเชพเชทเชพเช‚เชคเชฐ เช•เชฐเชตเชพ เชฌเชฆเชฒ เชฎเชพเชซเซ€ เชฎเชพเช‚เช—เซ เช›เซเช‚, เช•เซ‡เชŸเชฒเชพเช• เชถเชฌเซเชฆเชธเชฎเซ‚เชนเซ‹ เชœเซ‡เชฎ เช›เซ‡ เชคเซ‡เชฎ เช›เซ‹เชกเซ€ เชฆเซ‡เชตเชพเชจเซเช‚ เชธเชฐเชณ เชนเชคเซเช‚):

เชคเซเชฏเชพเช‚ เชฌเซ‡ เชธเช‚เชธเซเชฅเชพเช“ เช•เชนเซ‡เชตเชพเชฏ เช›เซ‡ เชธเชคเซเชฐ - "เชตเชฐเซเชคเชฎเชพเชจ เชธเชคเซเชฐเซ‹" เชนเซ‡เช เชณเชจเชพ เช…เชงเชฟเช•เซƒเชค เช•เซเชฒเชพเชฏเช‚เชŸเชจเชพ UI เชฎเชพเช‚ เชเช•, เชœเซเชฏเชพเช‚ เชฆเชฐเซ‡เช• เชธเชคเซเชฐ เชธเชฎเช—เซเชฐ เช‰เชชเช•เชฐเชฃ / OS เชจเซ‡ เช…เชจเซเชฒเช•เซเชทเซ‡ เช›เซ‡.
เชฌเซ€เชœเซเช‚ - MTProto เชธเชคเซเชฐ, เชœเซ‡เชฎเชพเช‚ เชธเช‚เชฆเซ‡เชถเชจเซ‹ เช•เซเชฐเชฎ เชจเช‚เชฌเชฐ เช›เซ‡ (เชจเซ€เชšเชพ-เชธเซเชคเชฐเชจเชพ เช…เชฐเซเชฅเชฎเชพเช‚) เช…เชจเซ‡ เชœเซ‡ เชตเชฟเชตเชฟเชง TCP เชœเซ‹เชกเชพเชฃเซ‹ เชตเชšเซเชšเซ‡ เชŸเช•เซ€ เชถเช•เซ‡ เช›เซ‡. เชเช• เชœ เชธเชฎเชฏเซ‡ เช•เซ‡เชŸเชฒเชพเช• MTProto เชธเชคเซเชฐเซ‹ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชซเชพเช‡เชฒ เชกเชพเช‰เชจเชฒเซ‹เชกเชฟเช‚เช—เชจเซ‡ เชเชกเชชเซ€ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡.

เช† เชฌเช‚เชจเซ‡ เชตเชšเซเชšเซ‡ เชธเชคเซเชฐเซ‹ เชเช• เช–เซเชฏเชพเชฒ เช›เซ‡ เช…เชงเชฟเช•เซƒเชคเชคเชพ. เช…เชงเซ‹เช—เชคเชฟเชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช…เชฎเซ‡ เช•เชนเซ€ เชถเช•เซ€เช เช•เซ‡ UI เชธเชคเซเชฐ เชœเซ‡เชตเซเช‚ เชœ เช›เซ‡ เช…เชงเชฟเช•เซƒเชคเชคเชพ, เชชเชฐเช‚เชคเซ เช…เชซเชธเซ‹เชธ, เชฌเชงเซเช‚ เชœเชŸเชฟเชฒ เช›เซ‡. เชšเชพเชฒเซ‹ เชœเซ‹เชˆเช:

  • เชจเชตเชพ เช‰เชชเช•เชฐเชฃ เชชเชฐ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชชเซเชฐเชฅเชฎ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡ auth_key เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชเช•เชพเช‰เชจเซเชŸ เชธเชพเชฅเซ‡ เชฌเชพเช‚เชงเซ‡ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ SMS เชฆเซเชตเชพเชฐเชพ - เชคเซ‡เชฅเซ€ เชœ เช…เชงเชฟเช•เซƒเชคเชคเชพ
  • เชคเซ‡ เชชเซเชฐเชฅเชฎ เช…เช‚เชฆเชฐ เชฅเชฏเซเช‚ MTProto เชธเชคเซเชฐ, เชœเซ‡เชจเซ€ เชชเชพเชธเซ‡ เชนเซ‹เชฏ session_id เชคเชฎเชพเชฐเซ€ เช…เช‚เชฆเชฐ.
  • เช† เชชเช—เชฒเชพ เชชเชฐ, เชธเช‚เชฏเซ‹เชœเชจ เช…เชงเชฟเช•เซƒเชคเชคเชพ ะธ session_id เช•เชนเซ€ เชถเช•เชพเชฏ เช‰เชฆเชพเชนเชฐเชฃ - เช† เชถเชฌเซเชฆ เช•เซ‡เชŸเชฒเชพเช• เช—เซเชฐเชพเชนเช•เซ‹เชจเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เช…เชจเซ‡ เช•เซ‹เชกเชฎเชพเช‚ เชฆเซ‡เช–เชพเชฏ เช›เซ‡
  • เชชเช›เซ€, เช•เซเชฒเชพเชฏเช‚เชŸ เช–เซ‹เชฒเซ€ เชถเช•เซ‡ เช›เซ‡ เช•เซ‡เชŸเชฒเชพเช• MTProto เชธเชคเซเชฐเซ‹ เชคเซ‡ เชœ เชนเซ‡เช เชณ auth_key - เช เชœ เชกเซ€เชธเซ€เชจเซ‡.
  • เชชเช›เซ€, เชเช• เชฆเชฟเชตเชธ เช•เซเชฒเชพเชฏเชจเซเชŸเชจเซ‡ เชซเชพเช‡เชฒเชจเซ€ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡ เช…เชจเซเชฏ เชกเซ€เชธเซ€ - เช…เชจเซ‡ เช† เชฎเชพเชŸเซ‡ เชเช• เชจเชตเซเช‚ DC เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ auth_key !
  • เชธเชฟเชธเซเชŸเชฎเชจเซ‡ เชœเชพเชฃ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‡ เชคเซ‡ เช•เซ‹เชˆ เชจเชตเซ‹ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชจเชฅเซ€ เชœเซ‡ เชจเซ‹เช‚เชงเชฃเซ€ เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชœ เช›เซ‡ เช…เชงเชฟเช•เซƒเชคเชคเชพ (UI เชธเชคเซเชฐ), เช•เซเชฒเชพเชฏเช‚เชŸ API เช•เซ‰เชฒเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ auth.exportAuthorization เช˜เชฐ เชกเซ€เชธเซ€ เชฎเชพเช‚ auth.importAuthorization เชจเชตเชพ เชกเซ€เชธเซ€เชฎเชพเช‚.
  • เชฌเชงเซเช‚ เชเช•เชธเชฐเช–เซเช‚ เช›เซ‡, เช˜เชฃเชพ เช–เซเชฒเซเชฒเชพ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ MTProto เชธเชคเซเชฐเซ‹ (เชฆเชฐเซ‡เช• เชคเซ‡เชจเซ€ เชชเซ‹เชคเชพเชจเซ€ เชธเชพเชฅเซ‡ session_id) เช† เชจเชตเชพ เชกเซ€เชธเซ€ เชฎเชพเชŸเซ‡, เชนเซ‡เช เชณ เชคเซ‡เชจเชพ auth_key.
  • เช›เซ‡เชฒเซเชฒเซ‡, เช•เซเชฒเชพเชฏเชจเซเชŸ เชชเชฐเชซเซ‡เช•เซเชŸ เชซเซ‹เชฐเชตเชฐเซเชก เชธเชฟเช•เซเชฐเชธเซ€ เช‡เชšเซเช›เซ‡ เช›เซ‡. เชฆเชฐเซ‡เช• auth_key เชนเชคเซ€ เช•เชพเชฏเชฎเซ€ เช•เซ€ - เชกเซ€เชธเซ€ เชฆเซ€เช  - เช…เชจเซ‡ เช•เซเชฒเชพเชฏเช‚เชŸ เช•เซ‰เชฒ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ auth.bindTempAuthKey เช‰เชชเชฏเซ‹เช— เชฎเชพเชŸเซ‡ เช•เชพเชฎเชšเชฒเชพเช‰ auth_key - เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€, เชฎเชพเชคเซเชฐ เชเช• temp_auth_key เชกเซ€เชธเซ€ เชฆเซ€เช , เชฌเชงเชพ เชฎเชพเชŸเซ‡ เชธเชพเชฎเชพเชจเซเชฏ MTProto เชธเชคเซเชฐเซ‹ เช† เชกเซ€เชธเซ€เชจเซ‡.

เช† เชงเซเชฏเชพเชจ เชฎเชพเช‚ เชฐเชพเช–เซ‹ เชฎเซ€เช เซเช‚ (เช…เชจเซ‡ เชญเชพเชตเชฟ เช•เซเชทเชพเชฐ) เชชเชฃ เชเช• เชชเชฐ เช›เซ‡ auth_key เชคเซ‡ เชฆเชฐเซ‡เช•เชจเซ€ เชตเชšเซเชšเซ‡ เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒเซเช‚ MTProto เชธเชคเซเชฐเซ‹ เช เชœ เชกเซ€เชธเซ€เชจเซ‡.

"เชตเชฟเชตเชฟเชง TCP เชœเซ‹เชกเชพเชฃเซ‹ เชตเชšเซเชšเซ‡" เชจเซ‹ เช…เชฐเซเชฅ เชถเซเช‚ เชฅเชพเชฏ เช›เซ‡? เชคเซ‹ เช†เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡ เชœเซ‡เชตเซเช‚ เช•เช‚เชˆเช• เชตเซ‡เชฌเชธเชพเช‡เชŸ เชชเชฐ เช…เชงเชฟเช•เซƒเชคเชคเชพ เช•เซ‚เช•เซ€ - เชคเซ‡ เช†เชชเซ‡เชฒ เชธเชฐเซเชตเชฐ เชชเชฐ เช˜เชฃเชพ TCP เช•เชจเซ‡เช•เซเชถเชจเซเชธ เชšเชพเชฒเซ เชฐเชนเซ‡ เช›เซ‡ (เชŸเช•เซ€ เชฐเชนเซ‡ เช›เซ‡), เชชเชฐเช‚เชคเซ เชเช• เชฆเชฟเชตเชธ เชคเซ‡ เช–เชฐเชพเชฌ เชฅเชˆ เชœเชพเชฏ เช›เซ‡. เชฎเชพเชคเซเชฐ HTTPเชฅเซ€ เชตเชฟเชชเชฐเซ€เชค, MTProtoเชฎเชพเช‚ เชธเชคเซเชฐเชจเซ€ เช…เช‚เชฆเชฐเชจเชพ เชธเช‚เชฆเซ‡เชถเชพเช“ เช•เซเชฐเชฎเชฟเช• เชฐเซ€เชคเซ‡ เช•เซเชฐเชฎเชพเช‚เช•เชฟเชค เช…เชจเซ‡ เชชเซเชทเซเชŸเชฟ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡; เชœเซ‹ เชคเซ‡เช“ เชŸเชจเชฒเชฎเชพเช‚ เชชเซเชฐเชตเซ‡เชถเซเชฏเชพ เชนเซ‹เชฏ, เชคเซ‹ เช•เชจเซ‡เช•เซเชถเชจ เชคเซ‚เชŸเซ€ เช—เชฏเซเช‚ เชนเชคเซเช‚ - เชจเชตเซเช‚ เช•เชจเซ‡เช•เซเชถเชจ เชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซเชฏเชพ เชชเช›เซ€, เชธเชฐเซเชตเชฐ เช•เซƒเชชเชพ เช•เชฐเซ€เชจเซ‡ เช† เชธเชคเซเชฐเชฎเชพเช‚ เชคเซ‡ เชฌเชงเซเช‚ เชฎเซ‹เช•เชฒเชถเซ‡ เชœเซ‡ เชคเซ‡เชฃเซ‡ เช…เช—เชพเช‰เชจเชพ เชธเชฎเชฏเชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เช•เชฐเซเชฏเซเช‚ เชจ เชนเชคเซเช‚. TCP เช•เชจเซ‡เช•เซเชถเชจ.

เชœเซ‹ เช•เซ‡, เช‰เชชเชฐเซ‹เช•เซเชค เชฎเชพเชนเชฟเชคเซ€เชจเซ‹ เชธเชพเชฐเชพเช‚เชถ เช˜เชฃเชพ เชฎเชนเชฟเชจเชพเช“เชจเซ€ เชคเชชเชพเชธ เชชเช›เซ€ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เช›เซ‡. เช† เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชถเซเช‚ เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ เช•เซเชฒเชพเชฏเชจเซเชŸเชจเซ‡ เชถเชฐเซ‚เช†เชคเชฅเซ€ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซ€เช เช›เซ€เช? - เชšเชพเชฒเซ‹ เชถเชฐเซ‚เช†เชค เชชเชฐ เชชเชพเช›เชพ เชœเชˆเช.

เชคเซ‹ เชšเชพเชฒเซ‹ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ€เช auth_key เชชเชฐ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎเชฎเชพเช‚เชฅเซ€ เชกเชฟเชซเซ€-เชนเซ‡เชฒเชฎเซ‡เชจ เชธเช‚เชธเซเช•เชฐเชฃเซ‹. เชšเชพเชฒเซ‹ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เชธเชฎเชœเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชคเซเชจ เช•เชฐเซ€เช...

เชตเซ‡เชธเชฟเชฒเซ€, [19.06.18 20:05] data_with_hash := SHA1(เชกเซ‡เชŸเชพ) + เชกเซ‡เชŸเชพ + (เช•เซ‹เชˆเชชเชฃ เชฐเซ‡เชจเซเชกเชฎ เชฌเชพเชˆเชŸ); เชœเซ‡เชฎ เช•เซ‡ เชฒเช‚เชฌเชพเชˆ 255 เชฌเชพเช‡เชŸเซเชธ เชธเชฎเชพเชจ เช›เซ‡;
encrypted_data := RSA(data_with_hash, server_public_key); 255-เชฌเชพเช‡เชŸ เชฒเชพเช‚เชฌเซ‹ เชจเช‚เชฌเชฐ (เชฎเซ‹เชŸเซ‹ เชเชจเซเชกเชฟเชฏเชจ) เชœเชฐเซ‚เชฐเซ€ เชฎเซ‹เชกเซเชฏเซเชฒเชธ เชชเชฐ เชœเชฐเซ‚เชฐเซ€ เชชเชพเชตเชฐ เชธเซเชงเซ€ เชตเชงเชพเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชชเชฐเชฟเชฃเชพเชฎ 256-เชฌเชพเช‡เชŸ เชจเช‚เชฌเชฐ เชคเชฐเซ€เช•เซ‡ เชธเช‚เช—เซเชฐเชนเชฟเชค เชฅเชพเชฏ เช›เซ‡.

เชคเซ‡เช“ เช•เซ‡เชŸเชฒเชพเช• เชกเซ‹เชช DH เช›เซ‡

เชคเช‚เชฆเซเชฐเชธเซเชค เชตเซเชฏเช•เซเชคเชฟเชจเชพ DH เชœเซ‡เชตเซเช‚ เชฒเชพเช—เชคเซเช‚ เชจเชฅเซ€
dx เชฎเชพเช‚ เช•เซ‹เชˆ เชฌเซ‡ เชธเชพเชฐเซเชตเชœเชจเชฟเช• เช•เซ€ เชจเชฅเซ€

เช เซ€เช• เช›เซ‡, เช…เช‚เชคเซ‡ เช†เชจเซ‡ เช‰เช•เซ‡เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚, เชชเชฐเช‚เชคเซ เชเช• เช…เชตเชถเซ‡เชท เชฐเชนเซ€ เช—เชฏเซ‹ - เช•เชพเชฎเชจเซ‹ เชชเซเชฐเชพเชตเซ‹ เช•เซเชฒเชพเชฏเช‚เชŸ เชฆเซเชตเชพเชฐเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชธเช‚เช–เซเชฏเชพเชจเซ‡ เชชเชฐเชฟเชฌเชณ เช•เชฐเชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชนเชคเซ‹. DoS เชนเซเชฎเชฒเชพ เชธเชพเชฎเซ‡ เชฐเช•เซเชทเชฃเชจเซ‹ เชชเซเชฐเช•เชพเชฐ. เช…เชจเซ‡ เช†เชฐเชเชธเช เช•เซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชซเช•เซเชค เชเช• เชœ เชฆเชฟเชถเชพเชฎเชพเช‚ เชฅเชพเชฏ เช›เซ‡, เช…เชจเชฟเชตเชพเชฐเซเชฏเชชเชฃเซ‡ เชเชจเซเช•เซเชฐเชฟเชชเซเชถเชจ เชฎเชพเชŸเซ‡ new_nonce. เชชเชฐเช‚เชคเซ เชœเซเชฏเชพเชฐเซ‡ เช† เชฎเซ‹เชŸเซ‡ เชญเชพเช—เซ‡ เชธเชฐเชณ เช“เชชเชฐเซ‡เชถเชจ เชธเชซเชณ เชฅเชถเซ‡, เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเชพเชฐเซ‡ เชถเซเช‚ เชธเชพเชฎเชจเซ‹ เช•เชฐเชตเซ‹ เชชเชกเชถเซ‡?

เชตเซ‡เชธเชฟเชฒเซ€, [20.06.18/00/26 XNUMX:XNUMX] เชนเซเช‚ เชนเชœเซ€ เชธเซเชงเซ€ เชเชชเชฟเชก เชตเชฟเชจเช‚เชคเซ€ เชชเชฐ เชชเชนเซ‹เช‚เชšเซเชฏเซ‹ เชจเชฅเซ€

เชฎเซ‡เช‚ เช† เชตเชฟเชจเช‚เชคเซ€ DH เชจเซ‡ เชฎเซ‹เช•เชฒเซ€ เช›เซ‡

เช…เชจเซ‡, เชชเชฐเชฟเชตเชนเชจ เชกเซ‹เช•เชฎเชพเช‚ เชคเซ‡ เช•เชนเซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชญเซ‚เชฒ เช•เซ‹เชกเชจเชพ 4 เชฌเชพเช‡เชŸเซเชธ เชธเชพเชฅเซ‡ เชชเซเชฐเชคเชฟเชธเชพเชฆ เช†เชชเซ€ เชถเช•เซ‡ เช›เซ‡. เชฌเชธ เชเชŸเชฒเซเช‚ เชœ

เชธเชพเชฐเซเช‚, เชคเซ‡เชฃเซ‡ เชฎเชจเซ‡ เช•เชนเซเชฏเซเช‚ -404, เชคเซ‹ เชถเซเช‚?

เชคเซ‡เชฅเซ€ เชฎเซ‡เช‚ เชคเซ‡เชจเซ‡ เช•เชนเซเชฏเซเช‚: "เช† เชฐเซ€เชคเซ‡ เชซเชฟเช‚เช—เชฐเชชเซเชฐเชฟเชจเซเชŸ เชธเชพเชฅเซ‡ เชธเชฐเซเชตเชฐ เช•เซ€ เชธเชพเชฅเซ‡ เชเชจเซเช•เซเชฐเชฟเชชเซเชŸเซ‡เชก เชคเชฎเชพเชฐเซ€ เชฌเซเชฒเชถเซ€เชŸเชจเซ‡ เชชเช•เชกเซ‹, เชฎเชจเซ‡ DH เชœเซ‹เชˆเช เช›เซ‡," เช…เชจเซ‡ เชคเซ‡เชฃเซ‡ เชฎเซ‚เชฐเซเช– 404 เชธเชพเชฅเซ‡ เชœเชตเชพเชฌ เช†เชชเซเชฏเซ‹.

เชคเชฎเซ‡ เช† เชธเชฐเซเชตเชฐ เชชเซเชฐเชคเชฟเชธเชพเชฆ เชตเชฟเชถเซ‡ เชถเซเช‚ เชตเชฟเชšเชพเชฐเซ‹ เช›เซ‹? เชถเซ เช•เชฐเชตเซ? เชชเซ‚เช›เชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‹เชˆ เชจเชฅเซ€ (เชชเชฐเช‚เชคเซ เชฌเซ€เชœเชพ เชญเชพเช—เชฎเชพเช‚ เชคเซ‡ เชตเชฟเชถเซ‡ เชตเชงเซ).

เช…เชนเซ€เช‚ เชคเชฎเชพเชฎ เชฐเชธ เชกเซ‹เช• เชชเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡

เชฎเชพเชฐเซ‡ เชฌเซ€เชœเซเช‚ เช•เช‚เชˆ เช•เชฐเชตเชพเชจเซเช‚ เชจเชฅเซ€, เชฎเซ‡เช‚ เชซเช•เซเชค เชจเช‚เชฌเชฐเซ‹เชจเซ‡ เช†เช—เชณ เช…เชจเซ‡ เชชเชพเช›เชณ เชซเซ‡เชฐเชตเชตเชพเชจเซเช‚ เชธเชชเชจเซเช‚ เชœเซ‹เชฏเซเช‚

เชฌเซ‡ 32 เชฌเซ€เชŸ เชจเช‚เชฌเชฐเซ‹. เชฎเซ‡เช‚ เชคเซ‡เชฎเชจเซ‡ เชฌเซ€เชœเชพ เชฌเชงเชพเชจเซ€ เชœเซ‡เชฎ เชชเซ‡เช• เช•เชฐเซเชฏเชพ

เชชเชฐเช‚เชคเซ เชจเชพ, เช† เชฌเซ‡เชจเซ‡ เชชเชนเซ‡เชฒเชพ BE เชคเชฐเซ€เช•เซ‡ เชฒเซ€เชŸเซ€เชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡

Vadim Goncharov, [20.06.18 15:49] เช…เชจเซ‡ เช†เชจเซ‡ เช•เชพเชฐเชฃเซ‡ 404?

เชตเซ‡เชธเชฟเชฒเซ€, [20.06.18 15:49] เชนเชพ!

Vadim Goncharov, [20.06.18 15:50] เชคเซ‡เชฅเซ€ เชนเซเช‚ เชธเชฎเชœเซ€ เชถเช•เชคเซ‹ เชจเชฅเซ€ เช•เซ‡ เชคเซ‡ เชถเซเช‚ เชถเซ‹เชงเซ€ เชถเช•เซเชฏเซ‹ เชจเชฅเซ€

เชตเซ‡เชธเชฟเชฒเซ€, [20.06.18 15:50] เชฒเช—เชญเช—

เชนเซเช‚ เชฎเซเช–เซเชฏ เชชเชฐเชฟเชฌเชณเซ‹% เชฎเชพเช‚ เช†เชตเชพ เชตเชฟเช˜เชŸเชจ เชถเซ‹เชงเซ€ เชถเช•เซเชฏเซ‹ เชจเชฅเซ€)

เช…เชฎเซ‡ เชญเซ‚เชฒ เชฐเชฟเชชเซ‹เชฐเซเชŸเชฟเช‚เช—เชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เชชเชฃ เช•เชฐเซเชฏเซเช‚ เชจเชฅเซ€

เชตเซ‡เชธเชฟเชฒเซ€, [20.06.18 20:18] เช“เชน, MD5 เชชเชฃ เช›เซ‡. เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชคเซเชฐเชฃ เช…เชฒเช— เช…เชฒเช— เชนเซ‡เชถ

เช•เซ€ เชซเชฟเช‚เช—เชฐเชชเซเชฐเชฟเชจเซเชŸเชจเซ€ เช—เชฃเชคเชฐเซ€ เชจเซ€เชšเซ‡ เชชเซเชฐเชฎเชพเชฃเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡:

digest = md5(key + iv)
fingerprint = substr(digest, 0, 4) XOR substr(digest, 4, 4)

SHA1 เช…เชจเซ‡ sha2

เชคเซ‹ เชšเชพเชฒเซ‹ เชฎเซ‚เช•เซ€เช auth_key เชกเชฟเชซเซ€-เชนเซ‡เชฒเชฎเซ‡เชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช…เชฎเชจเซ‡ 2048 เชฌเชฟเชŸเซเชธ เช•เชฆเชฎเชพเช‚ เชฎเชณเซเชฏเชพ เช›เซ‡. เช†เช—เชณ เชถเซเช‚ เช›เซ‡? เช†เช—เชณ เช†เชชเชฃเซ‡ เชถเซ‹เชงเซ€ เช•เชพเชขเซ€เช เช›เซ€เช เช•เซ‡ เช† เช•เซ€เชจเชพ เชจเซ€เชšเซ‡เชจเชพ 1024 เชฌเชฟเชŸเซเชธ เช•เซ‹เชˆเชชเชฃ เชฐเซ€เชคเซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเชพ เชจเชฅเซ€... เชชเชฐเช‚เชคเซ เชšเชพเชฒเซ‹ เช† เชตเชฟเชถเซ‡ เช…เชคเซเชฏเชพเชฐเซ‡ เชตเชฟเชšเชพเชฐเซ€เช. เช† เชชเช—เชฒเชพ เชชเชฐ, เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ‡ เชตเชนเซ‡เช‚เชšเชพเชฏเซ‡เชฒ เชฐเชนเชธเซเชฏ เช›เซ‡. TLS เชธเชคเซเชฐเชจเซเช‚ เชเชจเชพเชฒเซ‹เช— เชธเซเชฅเชพเชชเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชœเซ‡ เช–เซ‚เชฌ เชœ เช–เชฐเซเชšเชพเชณ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช›เซ‡. เชชเชฐเช‚เชคเซ เชธเชฐเซเชตเชฐ เชนเชœเซ€ เชชเชฃ เช†เชชเชฃเซ‡ เช•เซ‹เชฃ เช›เซ€เช เชคเซ‡ เชตเชฟเชถเซ‡ เช•เช‚เชˆเชชเชฃ เชœเชพเชฃเชคเซเช‚ เชจเชฅเซ€! เชนเชœเซ เชธเซเชงเซ€ เชจเชฅเซ€, เช–เชฐเซ‡เช–เชฐ. เช…เชงเชฟเช•เซƒเชคเชคเชพ. เชคเซ‡. เชœเซ‹ เชคเชฎเซ‡ "เชฒเซ‹เช—เชฟเชจ-เชชเชพเชธเชตเชฐเซเชก" เชจเชพ เชธเช‚เชฆเชฐเซเชญเชฎเชพเช‚ เชตเชฟเชšเชพเชฐเซเชฏเซเช‚ เชนเซ‹เชฏ, เชœเซ‡เชฎ เช•เซ‡ เชคเชฎเซ‡ เชเช•เชตเชพเชฐ ICQ เชฎเชพเช‚ เช•เชฐเซเชฏเซเช‚ เชนเชคเซเช‚, เช…เชฅเชตเชพ เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚ "เชฒเซ‹เช—เชฟเชจ-เช•เซ€", SSH เชจเซ€ เชœเซ‡เชฎ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช…เชฎเซเช• gitlab/github เชชเชฐ). เช…เชฎเชจเซ‡ เชเช• เช…เชจเชพเชฎเซ€ เชฎเชณเซเชฏเซ‹. เชœเซ‹ เชธเชฐเซเชตเชฐ เช…เชฎเชจเซ‡ เช•เชนเซ‡ เช•เซ‡ "เช† เชซเซ‹เชจ เชจเช‚เชฌเชฐเซ‹ เชฌเซ€เชœเชพ DC เชฆเซเชตเชพเชฐเชพ เชธเซ‡เชตเชพ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡" เชคเซ‹ เชถเซเช‚? เช…เชฅเชตเชพ เชคเซ‹ โ€œเชคเชฎเชพเชฐเชพ เชซเซ‹เชจ เชจเช‚เชฌเชฐ เชชเชฐ เชชเซเชฐเชคเชฟเชฌเช‚เชง เช›เซ‡โ€? เชšเชพเชตเซ€เชจเซ‡ เช เช†เชถเชพเชฎเชพเช‚ เชฐเชพเช–เชตเชพเชจเซเช‚ เชถเซเชฐเซ‡เชทเซเช  เช›เซ‡ เช•เซ‡ เชคเซ‡ เช‰เชชเชฏเซ‹เช—เซ€ เชฅเชถเซ‡ เช…เชจเซ‡ เชคเซเชฏเชพเช‚ เชธเซเชงเซ€เชฎเชพเช‚ เชคเซ‡ เชฌเช—เชกเชถเซ‡ เชจเชนเซ€เช‚.

เชฎเชพเชฐเซเช— เชฆเซเชตเชพเชฐเชพ, เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เช†เชฐเช•เซเชทเชฃ เชธเชพเชฅเซ‡ "เชชเซเชฐเชพเชชเซเชค" เช•เชฐเซเชฏเซเช‚. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชถเซเช‚ เช†เชชเชฃเซ‡ เชธเชฐเซเชตเชฐ เชชเชฐ เชตเชฟเชถเซเชตเชพเชธ เช•เชฐเซ€เช เช›เซ€เช? เชœเซ‹ เชคเซ‡ เชจเช•เชฒเซ€ เชนเซ‹เชฏ เชคเซ‹ เชถเซเช‚? เช•เซเชฐเชฟเชชเซเชŸเซ‹เช—เซเชฐเชพเชซเชฟเช• เชคเชชเชพเชธเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡:

เชตเซ‡เชธเชฟเชฒเซ€, [21.06.18 17:53] เชคเซ‡เช“ เชฎเซ‹เชฌเชพเช‡เชฒ เช•เซเชฒเชพเชฏเช‚เชŸเชจเซ‡ เชชเซเชฐเชพเชฅเชฎเชฟเช•เชคเชพ% เชฎเชพเชŸเซ‡ 2kbit เชจเช‚เชฌเชฐ เชคเชชเชพเชธเชตเชพเชจเซ€ เช“เชซเชฐ เช•เชฐเซ‡ เช›เซ‡)

เชชเชฐเช‚เชคเซ เชคเซ‡ เชฌเชฟเชฒเช•เซเชฒ เชธเซเชชเชทเซเชŸ เชจเชฅเซ€, nafeijoa

เชตเซ‡เชธเชฟเชฒเซ€, [21.06.18 18:02] เชฆเชธเซเชคเชพเชตเซ‡เชœ เช เชœเชฃเชพเชตเชคเซเช‚ เชจเชฅเซ€ เช•เซ‡ เชœเซ‹ เชคเซ‡ เชธเชฐเชณ เชจ เชนเซ‹เชฏ เชคเซ‹ เชถเซเช‚ เช•เชฐเชตเซเช‚

เช•เชนเซเชฏเซเช‚ เชจเชฅเซ€. เชšเชพเชฒเซ‹ เชœเซ‹เชˆเช เช•เซ‡ เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชธเชคเซเชคเชพเชตเชพเชฐ Android เช•เซเชฒเชพเชฏเช‚เชŸ เชถเซเช‚ เช•เชฐเซ‡ เช›เซ‡? เช เชคเซ‡ เชถเซเช‚ เช›เซ‡ (เช…เชจเซ‡ เชนเชพ, เช†เช–เซ€ เชซเชพเช‡เชฒ เชฐเชธเชชเซเชฐเชฆ เช›เซ‡) - เชœเซ‡เชฎ เชคเซ‡เช“ เช•เชนเซ‡ เช›เซ‡, เชนเซเช‚ เช†เชจเซ‡ เช…เชนเซ€เช‚ เช›เซ‹เชกเซ€เชถ:

278     static const char *goodPrime = "c71caeb9c6b1c9048e6c522f70f13f73980d40238e3e21c14934d037563d930f48198a0aa7c14058229493d22530f4dbfa336f6e0ac925139543aed44cce7c3720fd51f69458705ac68cd4fe6b6b13abdc9746512969328454f18faf8c595f642477fe96bb2a941d5bcd1d4ac8cc49880708fa9b378e3c4f3a9060bee67cf9a4a4a695811051907e162753b56b0f6b410dba74d8a84b2a14b3144e0ef1284754fd17ed950d5965b4b9dd46582db1178d169c6bc465b0d6ff9ca3928fef5b9ae4e418fc15e83ebea0f87fa9ff5eed70050ded2849f47bf959d956850ce929851f0d8115f635b105ee2e4e15d04b2454bf6f4fadf034b10403119cd8e3b92fcc5b";
279   if (!strcasecmp(prime, goodPrime)) {

เชจเชพ, เช…เชฒเชฌเชคเซเชค เชคเซ‡ เชนเชœเซ เชชเชฃ เช›เซ‡ เช•เซ‡เชŸเชฒเชพเช• เชธเช‚เช–เซเชฏเชพเชจเซ€ เชชเซเชฐเชพเชฅเชฎเชฟเช•เชคเชพ เชฎเชพเชŸเซ‡ เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เช›เซ‡, เชชเชฐเช‚เชคเซ เชตเซเชฏเช•เซเชคเชฟเช—เชค เชฐเซ€เชคเซ‡ เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชนเชตเซ‡ เช—เชฃเชฟเชคเชจเซเช‚ เชชเซ‚เชฐเชคเซเช‚ เชœเซเชžเชพเชจ เชจเชฅเซ€.

เช เซ€เช• เช›เซ‡, เช…เชฎเชจเซ‡ เชฎเชพเชธเซเชŸเชฐ เช•เซ€ เชฎเชณเซ€. เชฒเซ‰เช— เช‡เชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. เชตเชฟเชจเช‚เชคเซ€เช“ เชฎเซ‹เช•เชฒเซ‹, เชคเชฎเชพเชฐเซ‡ AES เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชตเชงเซ เชเชจเซเช•เซเชฐเชฟเชชเซเชถเชจ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เชฎเซ‡เชธเซ‡เชœ เช•เซ€เชจเซ‡ เชฎเซ‡เชธเซ‡เชœ เชฌเซ‹เชกเซ€เชจเชพ SHA128 เชจเชพ 256 เชฎเชฟเชกเชฒ เชฌเชฟเชŸเซเชธ เชคเชฐเซ€เช•เซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ (เชธเชคเซเชฐ, เชฎเซ‡เชธเซ‡เชœ ID, เชตเช—เซ‡เชฐเซ‡ เชธเชนเชฟเชค), เชชเซ‡เชกเชฟเช‚เช— เชฌเชพเช‡เชŸเซเชธ เชธเชนเชฟเชค, เช“เชฅเซ‹เชฐเชพเช‡เชเซ‡เชถเชจ เช•เซ€เชฎเชพเช‚เชฅเซ€ เชฒเซ€เชงเซ‡เชฒเชพ 32 เชฌเชพเช‡เชŸเซเชธ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเซ€เชชเซ‡เชจเซเชก เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชตเซ‡เชธเชฟเชฒเซ€, [22.06.18 14:08] เชธเชฐเซ‡เชฐเชพเชถ, เช•เซ‚เชคเชฐเซ€, เชฌเชฟเชŸเซเชธ

เชชเซเชฐเชพเชชเซเชค auth_key. เชฌเชงเชพ. เชคเซ‡เชฎเชจเชพเชฅเซ€ เช†เช—เชณ... เชคเซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเชฎเชพเช‚เชฅเซ€ เชธเซเชชเชทเซเชŸ เชจเชฅเซ€. เช“เชชเชจ เชธเซ‹เชฐเซเชธ เช•เซ‹เชกเชจเซ‹ เช…เชญเซเชฏเชพเชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชจเชฟเชƒเชธเช‚เช•เซ‹เชš.

เชจเซ‹เช‚เชง เช•เชฐเซ‹ เช•เซ‡ MTProto 2.0 เชจเซ‡ 12 เชฅเซ€ 1024 เชฌเชพเช‡เชŸเซเชธ เชชเซ‡เชกเชฟเช‚เช—เชจเซ€ เช†เชตเชถเซเชฏเช•เชคเชพ เช›เซ‡, เชนเชœเซ เชชเชฃ เชคเซ‡ เชถเชฐเชคเชจเซ‡ เช†เชงเซ€เชจ เช›เซ‡ เช•เซ‡ เชชเชฐเชฟเชฃเชพเชฎเซ€ เชธเช‚เชฆเซ‡เชถเชจเซ€ เชฒเช‚เชฌเชพเชˆ 16 เชฌเชพเช‡เชŸ เชฆเซเชตเชพเชฐเชพ เชตเชฟเชญเชพเชœเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ.

เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เช•เซ‡เชŸเชฒเซเช‚ เชชเซ‡เชกเชฟเช‚เช— เช‰เชฎเซ‡เชฐเชตเซเช‚ เชœเซ‹เชˆเช?

เช…เชจเซ‡ เชนเชพ, เชญเซ‚เชฒเชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ 404 เชชเชฃ เช›เซ‡

เชœเซ‹ เช•เซ‹เชˆเช เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃเชจเชพ เชกเชพเชฏเชพเช—เซเชฐเชพเชฎ เช…เชจเซ‡ เชŸเซ‡เช•เซเชธเซเชŸเชจเซ‹ เช•เชพเชณเชœเซ€เชชเซ‚เชฐเซเชตเช• เช…เชญเซเชฏเชพเชธ เช•เชฐเซเชฏเซ‹, เชคเซ‹ เชคเซ‡เช“เช เชจเซ‹เช‚เชงเซเชฏเซเช‚ เช•เซ‡ เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ MAC เชจเชฅเซ€. เช…เชจเซ‡ เชคเซ‡ AES เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชšเซ‹เช•เซเช•เชธ IGE เชฎเซ‹เชกเชฎเชพเช‚ เชฅเชพเชฏ เช›เซ‡ เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฌเซ€เชœเซ‡ เช•เซเชฏเชพเช‚เชฏ เชฅเชคเซ‹ เชจเชฅเซ€. เชคเซ‡เช“, เช…เชฒเชฌเชคเซเชค, เช† เชตเชฟเชถเซ‡ เชคเซ‡เชฎเชจเชพ FAQ เชฎเชพเช‚ เชฒเช–เซ‡ เช›เซ‡... เช…เชนเซ€เช‚, เชœเซ‡เชฎ เช•เซ‡, เชฎเซ‡เชธเซ‡เชœ เช•เซ€ เชชเซ‹เชคเซ‡ เชชเชฃ เชกเชฟเช•เซเชฐเชฟเชชเซเชŸเซ‡เชก เชกเซ‡เชŸเชพเชจเซ€ SHA เชนเซ‡เชถ เช›เซ‡, เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช…เช–เช‚เชกเชฟเชคเชคเชพ เชšเช•เชพเชธเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡ - เช…เชจเซ‡ เชœเซ‹ เชฎเซ‡เชณ เชจ เช–เชพเชคเซ€ เชนเซ‹เชฏ เชคเซ‹, เช•เซ‹เชˆ เช•เชพเชฐเชฃเชธเชฐ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชคเซ‡เชฎเชจเซ‡ เชšเซเชชเชšเชพเชช เช…เชตเช—เชฃเชตเชพเชจเซ€ เชญเชฒเชพเชฎเชฃ เช•เชฐเซ‡ เช›เซ‡ (เชชเชฐเช‚เชคเซ เชธเซเชฐเช•เซเชทเชพ เชตเชฟเชถเซ‡ เชถเซเช‚, เชœเซ‹ เชคเซ‡เช“ เช…เชฎเชจเซ‡ เชคเซ‹เชกเซ‡ เชคเซ‹ เชถเซเช‚?).

เชนเซเช‚ เช•เซเชฐเชฟเชชเซเชŸเซ‹เช—เซเชฐเชพเชซเชฐ เชจเชฅเซ€, เช•เชฆเชพเชš เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เชฆเซƒเชทเซเชŸเชฟเช•เซ‹เชฃเชฅเซ€ เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เช† เชฎเซ‹เชกเชฎเชพเช‚ เช•เช‚เชˆ เช–เซ‹เชŸเซเช‚ เชจเชฅเซ€. เชชเชฐเช‚เชคเซ เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชกเซ‡เชธเซเช•เชŸเซ‹เชชเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชนเซเช‚ เชตเซเชฏเชตเชนเชพเชฐเชฟเช• เชธเชฎเชธเซเชฏเชพเชจเซเช‚ เชธเซเชชเชทเซเชŸ เชจเชพเชฎ เช†เชชเซ€ เชถเช•เซเช‚ เช›เซเช‚. เชคเซ‡ เชธเซเชฅเชพเชจเชฟเช• เช•เซ‡เชถ (เช† เชคเชฎเชพเชฎ D877F783D5D3EF8C) เชจเซ‡ MTProto เชฎเชพเช‚ เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ€ เชœเซ‡เชฎ เชœ เชเชจเซเช•เซเชฐเชฟเชชเซเชŸ เช•เชฐเซ‡ เช›เซ‡ (เชฎเชพเชคเซเชฐ เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชธเช‚เชธเซเช•เชฐเชฃ 1.0), เชเชŸเชฒเซ‡ เช•เซ‡. เชชเชนเซ‡เชฒเชพ เชฎเซ‡เชธเซ‡เชœ เช•เซ€, เชชเช›เซ€ เชกเซ‡เชŸเชพ เชชเซ‹เชคเซ‡ (เช…เชจเซ‡ เช•เซเชฏเชพเช‚เช• เชฎเซเช–เซเชฏ เชจเซ‡ เชฌเชพเชœเซ เชชเชฐ เชฐเชพเช–เซ€เชจเซ‡ auth_key 256 เชฌเชพเช‡เชŸเซเชธ, เชœเซ‡เชจเชพ เชตเชฟเชจเชพ msg_key เชจเช•เชพเชฎเซเช‚). เชคเซ‡เชฅเซ€, เชธเชฎเชธเซเชฏเชพ เชฎเซ‹เชŸเซ€ เชซเชพเช‡เชฒเซ‹ เชชเชฐ เชงเซเชฏเชพเชจเชชเชพเชคเซเชฐ เชฌเชจเซ‡ เช›เซ‡. เชœเซ‡เชฎ เช•เซ‡, เชคเชฎเชพเชฐเซ‡ เชกเซ‡เชŸเชพเชจเซ€ เชฌเซ‡ เชจเช•เชฒเซ‹ เชฐเชพเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ - เชเชจเซเช•เซเชฐเชฟเชชเซเชŸเซ‡เชก เช…เชจเซ‡ เชกเชฟเช•เซเชฐเชฟเชชเซเชŸเซ‡เชก. เช…เชจเซ‡ เชœเซ‹ เชคเซเชฏเชพเช‚ เชฎเซ‡เช—เชพเชฌเชพเช‡เชŸเซเชธ เช…เชฅเชตเชพ เชธเซเชŸเซเชฐเซ€เชฎเชฟเช‚เช— เชตเชฟเชกเชฟเชฏเซ‹ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡?.. เชธเชพเช‡เชซเชฐเชŸเซ‡เช•เซเชธเซเชŸ เชชเช›เซ€ MAC เชธเชพเชฅเซ‡ เช•เซเชฒเชพเชธเชฟเช• เชธเซเช•เซ€เชฎเซเชธ เชคเชฎเชจเซ‡ เชคเซ‡เชจเซ‡ เชธเซเชŸเซเชฐเซ€เชฎ เชตเชพเช‚เชšเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เชคเชฐเชค เชœ เชคเซ‡เชจเซ‡ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เช•เชฐเซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ MTProto เชธเชพเชฅเซ‡ เชคเชฎเชพเชฐเซ‡ เช•เชฐเชตเซเช‚ เชชเชกเชถเซ‡ เชชเซเชฐเชฅเชฎ เชธเชฎเช—เซเชฐ เชธเช‚เชฆเซ‡เชถเชจเซ‡ เชเชจเซเช•เซเชฐเชฟเชชเซเชŸ เช…เชฅเชตเชพ เชกเชฟเช•เซเชฐเชฟเชชเซเชŸ เช•เชฐเซ‹, เชฎเชพเชคเซเชฐ เชชเช›เซ€ เชคเซ‡เชจเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เช…เชฅเชตเชพ เชกเชฟเชธเซเช• เชชเชฐ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเซ‹. เชคเซ‡เชฅเซ€, เช•เซ‡เชถเชฎเชพเช‚ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชกเซ‡เชธเซเช•เชŸเซ‹เชชเชจเชพ เชจเชตเซ€เชจเชคเชฎ เชธเช‚เชธเซเช•เชฐเชฃเซ‹เชฎเชพเช‚ user_data เช…เชจเซเชฏ เชซเซ‹เชฐเซเชฎเซ‡เชŸเชจเซ‹ เชชเชฃ เช‰เชชเชฏเซ‹เช— เชฅเชพเชฏ เช›เซ‡ - CTR เชฎเซ‹เชกเชฎเชพเช‚ AES เชธเชพเชฅเซ‡.

เชตเซ‡เชธเชฟเชฒเซ€, [21.06.18 01:27] เช“เชน, เชฎเชจเซ‡ เชœเชพเชฃเชตเชพ เชฎเชณเซเชฏเซเช‚ เช•เซ‡ IGE เชถเซเช‚ เช›เซ‡: IGE เช "เชชเซเชฐเชฎเชพเชฃเซ€เช•เชฐเชฃ เชเชจเซเช•เซเชฐเชฟเชชเซเชถเชจ เชฎเซ‹เชก"เชจเซ‹ เชชเซเชฐเชฅเชฎ เชชเซเชฐเชฏเชพเชธ เชนเชคเซ‹, เชœเซ‡ เชฎเซ‚เชณ เชฐเซ‚เชชเซ‡ เช•เชฐเซเชฌเชฐเซ‹เชธ เชฎเชพเชŸเซ‡ เชนเชคเซ‹. เชคเซ‡ เชจเชฟเชทเซเชซเชณ เชชเซเชฐเชฏเชพเชธ เชนเชคเซ‹ (เชคเซ‡ เช…เช–เช‚เชกเชฟเชคเชคเชพ เชธเซเชฐเช•เซเชทเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชคเซเช‚ เชจเชฅเซ€), เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเชตเซเช‚ เชชเชกเซเชฏเซเช‚ เชนเชคเซเช‚. เชคเซ‡ เชเช• เชชเซเชฐเชฎเชพเชฃเซ€เช•เชฐเชฃ เชเชจเซเช•เซเชฐเชฟเชชเซเชถเชจ เชฎเซ‹เชก เชฎเชพเชŸเซ‡ 20 เชตเชฐเซเชทเชจเซ€ เชถเซ‹เชงเชจเซ€ เชถเชฐเซ‚เช†เชค เชนเชคเซ€ เชœเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡ เชคเชพเชœเซ‡เชคเชฐเชฎเชพเช‚ OCB เช…เชจเซ‡ GCM เชœเซ‡เชตเชพ เชฎเซ‹เชกเซเชธเชฎเชพเช‚ เชชเชฐเชฟเชฃเชฎเซเชฏเซเช‚ เชนเชคเซเช‚.

เช…เชจเซ‡ เชนเชตเซ‡ เช•เชพเชฐเซเชŸ เชฌเชพเชœเซเชจเซ€ เชฆเชฒเซ€เชฒเซ‹:

เชจเชฟเช•เซ‹เชฒเชพเชˆ เชฆเซเชฐเซ‹เชตเชจเซ€ เช†เช—เซ‡เชตเชพเชจเซ€ เชนเซ‡เช เชณเชจเซ€ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชชเชพเช›เชณเชจเซ€ เชŸเซ€เชฎเชฎเชพเช‚ เช› ACM เชšเซ‡เชฎเซเชชเชฟเชฏเชจเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡, เชœเซ‡เชฎเชพเช‚เชฅเซ€ เช…เชกเชงเชพ เช—เชฃเชฟเชคเชฎเชพเช‚ Ph.D. เชเชฎเชŸเซ€เชชเซเชฐเซ‹เชŸเซ‹เชจเชพ เชตเชฐเซเชคเชฎเชพเชจ เชธเช‚เชธเซเช•เชฐเชฃเชจเซ‡ เชฌเชนเชพเชฐ เชชเชพเชกเชตเชพเชฎเชพเช‚ เชคเซ‡เชฎเชจเซ‡ เชฒเช—เชญเช— เชฌเซ‡ เชตเชฐเซเชท เชฒเชพเช—เซเชฏเชพเช‚.

เชคเซ‡ เชฐเชฎเซเชœเซ€ เช›เซ‡. เชจเซ€เชšเชฒเชพ เชธเซเชคเชฐเซ‡ เชฌเซ‡ เชตเชฐเซเชท

เช…เชฅเชตเชพ เชคเชฎเซ‡ เชฎเชพเชคเซเชฐ tls เชฒเชˆ เชถเช•เซ‹ เช›เซ‹

เช เซ€เช• เช›เซ‡, เชšเชพเชฒเซ‹ เช•เชนเซ€เช เช•เซ‡ เช…เชฎเซ‡ เชเชจเซเช•เซเชฐเชฟเชชเซเชถเชจ เช…เชจเซ‡ เช…เชจเซเชฏ เช˜เซ‹เช‚เช˜เชพเชŸ เช•เชฐเซ€ เชฒเซ€เชงเซ€ เช›เซ‡. เชถเซเช‚ เช†เช–เชฐเซ‡ TL เชฎเชพเช‚ เช…เชจเซเช•เซเชฐเชฎเชฟเชค เชตเชฟเชจเช‚เชคเซ€เช“ เชฎเซ‹เช•เชฒเชตเซ€ เช…เชจเซ‡ เชชเซเชฐเชคเชฟเชธเชพเชฆเซ‹เชจเซ‡ เชกเซ€เชธเซ€เชฐเชฟเชฏเชฒเชพเชˆเช เช•เชฐเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡? เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชถเซเช‚ เช…เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฎเซ‹เช•เชฒเชตเซเช‚ เชœเซ‹เชˆเช? เช…เชนเซ€เช‚, เชšเชพเชฒเซ‹, เชชเชฆเซเชงเชคเชฟ เช•เชนเซ€เช initConnection, เช•เชฆเชพเชš เช† เชคเซ‡ เช›เซ‡?

เชตเซ‡เชธเชฟเชฒเซ€, [25.06.18 18:46] เช•เชจเซ‡เช•เซเชถเชจ เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเชพ เช‰เชชเช•เชฐเชฃ เช…เชจเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเชฐ เชฎเชพเชนเชฟเชคเซ€ เชธเชพเชšเชตเซ‡ เช›เซ‡.

เชคเซ‡ app_id, device_model, system_version, app_version เช…เชจเซ‡ lang_code เชธเซเชตเซ€เช•เชพเชฐเซ‡ เช›เซ‡.

เช…เชจเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เช•เซเชตเซ‡เชฐเซ€

เชนเช‚เชฎเซ‡เชถเชจเซ€ เชœเซ‡เชฎ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ. เช“เชชเชจ เชธเซ‹เชฐเซเชธเชจเซ‹ เช…เชญเซเชฏเชพเชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชจเชฟเชƒเชธเช‚เช•เซ‹เชš

เชœเซ‹ invokeWithLayer เชธเชพเชฅเซ‡ เชฌเชงเซเช‚ เชฒเช—เชญเช— เชธเซเชชเชทเซเชŸ เชนเชคเซเช‚, เชคเซ‹ เชชเช›เซ€ เช…เชนเซ€เช‚ เชถเซเช‚ เช–เซ‹เชŸเซเช‚ เช›เซ‡? เชคเซ‡ เชคเชพเชฐเชฃ เช†เชชเซ‡ เช›เซ‡, เชšเชพเชฒเซ‹ เช•เชนเซ€เช เช•เซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช›เซ‡ - เช•เซเชฒเชพเชฏเช‚เชŸ เชชเชพเชธเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชธเชฐเซเชตเชฐเชจเซ‡ เชชเซ‚เช›เชตเชพ เชฎเชพเชŸเซ‡ เช•เช‚เชˆเช• เชนเชคเซเช‚ - เชคเซเชฏเชพเช‚ เชเช• เชตเชฟเชจเช‚เชคเซ€ เช›เซ‡ เชœเซ‡ เช…เชฎเซ‡ เชฎเซ‹เช•เชฒเชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช:

เชตเซ‡เชธเชฟเชฒเซ€, [25.06.18 19:13] เช•เซ‹เชกเชจเชพ เช†เชงเชพเชฐเซ‡, เชชเซเชฐเชฅเชฎ เช•เซ‰เชฒ เช† เชตเชพเชนเชฟเชฏเชพเชคเชฎเชพเช‚ เชฒเชชเซ‡เชŸเชพเชฏเซ‡เชฒเซ‹ เช›เซ‡, เช…เชจเซ‡ เชตเชพเชนเชฟเชฏเชพเชค เชชเซ‹เชคเซ‡ เช‡เชจเชตเซ‹เช•เชตเชฟเชฅเชฒเซ‡เชฏเชฐเชฎเชพเช‚ เชฒเชชเซ‡เชŸเชพเชฏเซ‡เชฒเซ‹ เช›เซ‡

เชถเชพ เชฎเชพเชŸเซ‡ initConnection เช…เชฒเช— เช•เซ‰เชฒ เชจ เชนเซ‹เชˆ เชถเช•เซ‡, เชชเชฐเช‚เชคเซ เชฐเซ‡เชชเชฐ เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช? เชนเชพ, เชœเซ‡เชฎ เชคเซ‡ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชคเซ‡ เชฆเชฐเซ‡เช• เชธเชคเซเชฐเชจเซ€ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชฆเชฐเซ‡เช• เชตเช–เชคเซ‡ เชฅเชตเซเช‚ เชœเซ‹เชˆเช, เช…เชจเซ‡ เชเช• เชตเชพเชฐ เชจเชนเซ€เช‚, เชฎเซเช–เซเชฏ เช•เซ€เชจเซ€ เชœเซ‡เชฎ. เชชเชฃ! เชคเซ‡เชจเซ‡ เช…เชจเชงเชฟเช•เซƒเชค เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชฆเซเชตเชพเชฐเชพ เช•เซ‰เชฒ เช•เชฐเซ€ เชถเช•เชพเชคเซ‹ เชจเชฅเซ€! เชนเชตเซ‡ เช…เชฎเซ‡ เชคเซ‡ เชธเซเชŸเซ‡เชœ เชชเชฐ เชชเชนเซ‹เช‚เชšเซ€ เช—เชฏเชพ เช›เซ€เช เชœเซเชฏเชพเช‚ เชคเซ‡ เชฒเชพเช—เซ เชชเชกเซ‡ เช›เซ‡ เช† เชเช• เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชชเซƒเชทเซเช  - เช…เชจเซ‡ เชคเซ‡ เช…เชฎเชจเซ‡ เช•เชนเซ‡ เช›เซ‡ เช•เซ‡...

API เชชเชฆเซเชงเชคเชฟเช“เชจเซ‹ เชฎเชพเชคเซเชฐ เชเช• เชจเชพเชจเซ‹ เชญเชพเช— เช…เชจเชงเชฟเช•เซƒเชค เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชฎเชพเชŸเซ‡ เช‰เชชเชฒเชฌเซเชง เช›เซ‡:

  • auth.sendCode
  • auth.resendCode
  • account.getPassword
  • auth.checkPassword
  • auth.checkPhone
  • auth.signUp
  • auth.signIn
  • auth.importAuthorization
  • help.getConfig
  • help.getNearestDc
  • help.getAppUpdate
  • help.getCdnConfig
  • langpack.getLangPack
  • langpack.getStrings
  • langpack.getDifference
  • langpack.getLanguages
  • langpack.getLanguage

เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชชเซเชฐเชฅเชฎ, auth.sendCode, เช…เชจเซ‡ เชคเซ‡ เชชเซเชฐเชฟเชฏ เชชเซเชฐเชฅเชฎ เชตเชฟเชจเช‚เชคเซ€ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เช…เชฎเซ‡ api_id เช…เชจเซ‡ api_hash เชฎเซ‹เช•เชฒเซ€เช เช›เซ€เช เช…เชจเซ‡ เชคเซ‡ เชชเช›เซ€ เช…เชฎเชจเซ‡ เช•เซ‹เชก เชธเชพเชฅเซ‡เชจเซ‹ SMS เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡. เช…เชจเซ‡ เชœเซ‹ เช†เชชเชฃเซ‡ เช–เซ‹เชŸเชพ เชกเซ€เชธเซ€เชฎเชพเช‚ เช›เซ€เช (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช† เชฆเซ‡เชถเชฎเชพเช‚ เชŸเซ‡เชฒเชฟเชซเซ‹เชจ เชจเช‚เชฌเชฐเซ‹ เชฌเซ€เชœเชพ เชฆเซเชตเชพเชฐเชพ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡), เชคเซ‹ เชชเช›เซ€ เช…เชฎเชจเซ‡ เช‡เชšเซเช›เชฟเชค เชกเซ€เชธเซ€เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชธเชพเชฅเซ‡ เชญเซ‚เชฒ เชชเซเชฐเชพเชชเซเชค เชฅเชถเซ‡. เชคเชฎเชพเชฐเซ‡ DC เชจเช‚เชฌเชฐ เชฆเซเชตเชพเชฐเชพ เช•เชฏเชพ IP เชธเชฐเชจเชพเชฎเชพ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชคเซ‡ เชถเซ‹เชงเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเชจเซ‡ เชฎเชฆเชฆ เช•เชฐเซ‹ help.getConfig. เชเช• เชธเชฎเชฏเซ‡ เชซเช•เซเชค 5 เชเชจเซเชŸเซเชฐเซ€เช“ เชนเชคเซ€, เชชเชฐเช‚เชคเซ 2018 เชจเซ€ เชชเซเชฐเช–เซเชฏเชพเชค เช˜เชŸเชจเชพเช“ เชชเช›เซ€, เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชตเชงเชพเชฐเซ‹ เชฅเชฏเซ‹ เช›เซ‡.

เชนเชตเซ‡ เชฏเชพเชฆ เชฐเชพเช–เซ€เช เช•เซ‡ เช†เชชเชฃเซ‡ เชธเชฐเซเชตเชฐ เชชเชฐ เช…เชœเซเชžเชพเชค เชฐเซ‚เชชเซ‡ เช† เชคเชฌเช•เซเช•เซ‡ เชชเชนเซ‹เช‚เชšเซเชฏเชพ เช›เซ€เช. เชถเซเช‚ เชฎเชพเชคเซเชฐ IP เชธเชฐเชจเชพเชฎเซเช‚ เชฎเซ‡เชณเชตเชตเซเช‚ เช–เซ‚เชฌ เช–เชฐเซเชšเชพเชณ เชจเชฅเซ€? MTProto เชจเชพ เชเชจเช•เซเชฐเชฟเชชเซเชŸเซ‡เชก เชญเชพเช—เชฎเชพเช‚ เช† เช…เชจเซ‡ เช…เชจเซเชฏ เช•เชพเชฎเช—เซ€เชฐเซ€ เชถเชพ เชฎเชพเชŸเซ‡ เชจ เช•เชฐเชตเซ€? เชฎเชจเซ‡ เชตเชพเช‚เชงเซ‹ เชธเช‚เชญเชณเชพเชฏ เช›เซ‡: "เช…เชฎเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช–เชพเชคเชฐเซ€ เช•เชฐเซ€ เชถเช•เซ€เช เช•เซ‡ เชคเซ‡ RKN เชจเชฅเซ€ เชœเซ‡ เช–เซ‹เชŸเชพ เชธเชฐเชจเชพเชฎเชพ เชธเชพเชฅเซ‡ เชœเชตเชพเชฌ เช†เชชเชถเซ‡?" เช† เชฎเชพเชŸเซ‡ เช…เชฎเชจเซ‡ เชฏเชพเชฆ เช›เซ‡ เช•เซ‡, เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชธเชคเซเชคเชพเชตเชพเชฐ เช—เซเชฐเชพเชนเช•เซ‹ RSA เช•เซ€ เชเชฎเซเชฌเซ‡เชก เช•เชฐเซ‡เชฒเซ€ เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡ เชคเชฎเซ‡ เชฎเชพเชคเซเชฐ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเซ‹ เช† เชฎเชพเชนเชฟเชคเซ€. เชตเชพเชธเซเชคเชตเชฎเชพเช‚, เช† เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช…เชจเซเชฏ เชšเซ‡เชจเชฒเซ‹ เชฆเซเชตเชพเชฐเชพ เช•เซเชฒเชพเชฏเชจเซเชŸเซเชธเชจเซ‡ เชชเซเชฐเชพเชชเซเชค เชฅเชคเซ€ เชฌเซเชฒเซ‹เช•เซ€เช‚เช—เชจเซ‡ เชฌเชพเชฏเชชเชพเชธ เช•เชฐเชตเชพเชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชฎเชพเชŸเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ (เชคเชพเชฐเซเช•เชฟเช• เชฐเซ€เชคเซ‡, เช† เชเชฎเชŸเซ€เชชเซเชฐเซ‹เชŸเซ‹เชฎเชพเช‚ เชœ เชฅเชˆ เชถเช•เชคเซเช‚ เชจเชฅเซ€; เชคเชฎเชพเชฐเซ‡ เช•เซเชฏเชพเช‚ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเซเช‚ เชคเซ‡ เชชเชฃ เชœเชพเชฃเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡).

เชฌเชฐเชพเชฌเชฐ. เช•เซเชฒเชพเชฏเช‚เชŸ เช…เชงเชฟเช•เซƒเชคเชคเชพเชจเชพ เช† เชคเชฌเช•เซเช•เซ‡, เช…เชฎเซ‡ เชนเชœเซ เชธเซเชงเซ€ เช…เชงเชฟเช•เซƒเชค เชจเชฅเซ€ เช…เชจเซ‡ เช…เชฎเชพเชฐเซ€ เช…เชฐเชœเซ€ เชฐเชœเซ€เชธเซเชŸเชฐ เช•เชฐเซ€ เชจเชฅเซ€. เช…เชฎเซ‡ เชนเชฎเชฃเชพเช‚ เชœ เชœเซ‹เชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช เช•เซ‡ เชธเชฐเซเชตเชฐ เช…เชจเชงเชฟเช•เซƒเชค เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชฎเชพเชŸเซ‡ เช‰เชชเชฒเชฌเซเชง เชชเชฆเซเชงเชคเชฟเช“ เชชเชฐ เชถเซเช‚ เชชเซเชฐเชคเชฟเชธเชพเชฆ เช†เชชเซ‡ เช›เซ‡. เช…เชจเซ‡ เช…เชนเซ€เช‚โ€ฆ

เชตเซ‡เชธเชฟเชฒเซ€, [10.07.18 14:45] https://core.telegram.org/method/help.getConfig

config#7dae33e0 [...] = Config;
help.getConfig#c4f9186b = Config;

https://core.telegram.org/api/datacenter

config#232d5905 [...] = Config;
help.getConfig#c4f9186b = Config;

เชฏเซ‹เชœเชจเชพเชฎเชพเช‚, เชชเซเชฐเชฅเชฎ เช†เชตเซ‡ เช›เซ‡ เชฌเซ€เชœเชพ

tdesktop เชธเซเช•เซ€เชฎเชพเชฎเชพเช‚ เชคเซเชฐเซ€เชœเซเช‚ เชฎเซ‚เชฒเซเชฏ เช›เซ‡

เชนเชพ, เชคเซเชฏเชพเชฐเชฅเซ€, เช…เชฒเชฌเชคเซเชค, เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เชœเซ‹ เช•เซ‡ เชคเซ‡ เชŸเซ‚เช‚เช• เชธเชฎเชฏเชฎเชพเช‚ เชซเชฐเซ€เชฅเซ€ เช…เชชเซเชฐเชธเซเชคเซเชค เชฌเชจเซ€ เชถเช•เซ‡ เช›เซ‡. เชถเชฟเช–เชพเช‰ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชœเชพเชฃเชตเซเช‚ เชœเซ‹เชˆเช? เช•เชฆเชพเชš เชœเซ‹ เชคเชฎเซ‡ เชคเชฎเชพเชฐเซ€ เช…เชฐเชœเซ€ เชฐเชœเซ€เชธเซเชŸเชฐ เช•เชฐเซ‹, เชคเซ‹ เชคเซ‡เช“ เชคเชฎเชจเซ‡ เชœเชพเชฃ เช•เชฐเชถเซ‡? เชตเซ‡เชธเชฟเชฒเซ€เช เช† เช•เชฐเซเชฏเซเช‚, เชชเชฐเช‚เชคเซ เช…เชซเชธเซ‹เชธ, เชคเซ‡เช“เช เชคเซ‡เชจเซ‡ เช•เช‚เชˆเชชเชฃ เชฎเซ‹เช•เชฒเซเชฏเซเช‚ เชจเชนเซ€เช‚ (เชซเชฐเซ€เชฅเซ€, เช…เชฎเซ‡ เชฌเซ€เชœเชพ เชญเชพเช—เชฎเชพเช‚ เช† เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€เชถเซเช‚).

...เชคเชฎเซ‡ เชจเซ‹เช‚เชงเซเชฏเซเช‚ เช›เซ‡ เช•เซ‡ เช…เชฎเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ API เชชเชฐ เช–เชธเซ‡เชกเซเชฏเชพ เช›เซ€เช, เชเชŸเชฒเซ‡ เช•เซ‡. เช†เช—เชฒเชพ เชธเซเชคเชฐ เชชเชฐ, เช…เชจเซ‡ MTProto เชตเชฟเชทเชฏเชฎเชพเช‚ เช•เช‚เชˆเช• เชšเซ‚เช•เซ€ เช—เชฏเชพ? เช•เซ‹เชˆ เช†เชถเซเชšเชฐเซเชฏ เชจเชฅเซ€:

เชตเซ‡เชธเชฟเชฒเซ€, [28.06.18 02:04] เชเชฎเชเชฎ, เชคเซ‡เช“ e2e เชชเชฐเชจเชพ เช•เซ‡เชŸเชฒเชพเช• เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎเซเชธ เชฆเซเชตเชพเชฐเชพ เช—เชกเชฌเชก เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡

Mtproto เชฌเช‚เชจเซ‡ เชกเซ‹เชฎเซ‡เชจเซเชธ เชฎเชพเชŸเซ‡ เชเชจเซเช•เซเชฐเชฟเชชเซเชถเชจ เชเชฒเซเช—เซ‹เชฐเชฟเชงเชฎเซเชธ เช…เชจเซ‡ เช•เซ€, เชคเซ‡เชฎเชœ เชฅเซ‹เชกเซ€ เชฐเซ‡เชชเชฐ เชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ‡ เช›เซ‡

เชชเชฐเช‚เชคเซ เชคเซ‡เช“ เชธเชคเชค เชธเซเชŸเซ‡เช•เชจเชพ เชตเชฟเชตเชฟเชง เชธเซเชคเชฐเซ‹เชจเซ‡ เชฎเชฟเชถเซเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เชคเซ‡ เชนเช‚เชฎเซ‡เชถเชพ เชธเซเชชเชทเซเชŸ เชจเชฅเซ€ เชนเซ‹เชคเซเช‚ เช•เซ‡ mtproto เช•เซเชฏเชพเช‚ เชธเชฎเชพเชชเซเชค เชฅเชฏเซเช‚ เช…เชจเซ‡ เช†เช—เชฒเซเช‚ เชธเซเชคเชฐ เช•เซเชฏเชพเช‚ เชถเชฐเซ‚ เชฅเชฏเซเช‚

เชคเซ‡เช“ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชญเชณเซ€ เชœเชพเชฏ เช›เซ‡? เช เซ€เช• เช›เซ‡, เช…เชนเซ€เช‚ PFS เชฎเชพเชŸเซ‡ เชธเชฎเชพเชจ เช…เชธเซเชฅเชพเชฏเซ€ เช•เซ€ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ (เชคเซ‡ เชฐเซ€เชคเซ‡, เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชกเซ‡เชธเซเช•เชŸเซ‰เชช เชคเซ‡ เช•เชฐเซ€ เชถเช•เชคเซเช‚ เชจเชฅเซ€). เชคเซ‡ API เชตเชฟเชจเช‚เชคเซ€ เชฆเซเชตเชพเชฐเชพ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ auth.bindTempAuthKey, เชเชŸเชฒเซ‡ เช•เซ‡ เชŸเซ‹เชšเชจเชพ เชธเซเชคเชฐเชฅเซ€. เชชเชฐเช‚เชคเซ เชคเซ‡ เชœ เชธเชฎเชฏเซ‡ เชคเซ‡ เชจเซ€เชšเชฒเชพ เชธเซเชคเชฐเซ‡ เชเชจเซเช•เซเชฐเชฟเชชเซเชถเชจเชฎเชพเช‚ เชฆเช–เชฒ เช•เชฐเซ‡ เช›เซ‡ - เชคเซ‡ เชชเช›เซ€, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ initConnection เชตเช—เซ‡เชฐเซ‡, เช† เชจเชฅเซ€ เชฎเชพเชคเซเชฐ เชธเชพเชฎเชพเชจเซเชฏ เชตเชฟเชจเช‚เชคเซ€. เช–เชพเชธ เชตเชพเชค เช เช›เซ‡ เช•เซ‡ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชกเซ€เชธเซ€ เชฆเซ€เช  เชฎเชพเชคเซเชฐ เชเช• เชœ เช•เชพเชฎเชšเชฒเชพเช‰ เช•เซ€ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡, เชœเซ‹ เช•เซ‡ เชซเซ€เชฒเซเชก auth_key_id เชฆเชฐเซ‡เช• เชธเช‚เชฆเซ‡เชถเชฎเชพเช‚ เชคเชฎเชจเซ‡ เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ เชฆเชฐเซ‡เช• เชธเช‚เชฆเซ‡เชถเชฎเชพเช‚ เช•เซ€ เชฌเชฆเชฒเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชจเซ‡ เช•เซ‹เชˆเชชเชฃ เชธเชฎเชฏเซ‡ เช…เชธเซเชฅเชพเชฏเซ€ เช•เซ€เชจเซ‡ "เชญเซ‚เชฒเซ€ เชœเชตเชพเชจเซ‹" เช…เชงเชฟเช•เชพเชฐ เช›เซ‡ - เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เช•เชนเซ‡เชคเซเช‚ เชจเชฅเซ€ เช•เซ‡ เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชถเซเช‚ เช•เชฐเชตเซเช‚... เชธเชพเชฐเซเช‚, เชถเชพ เชฎเชพเชŸเซ‡ เชถเช•เซเชฏ เชจเชฅเซ€ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช˜เชฃเซ€ เชšเชพเชตเซ€เช“ เชจเชฅเซ€, เชœเซ‡เชฎ เช•เซ‡ เชญเชพเชตเชฟ เช•เซเชทเชพเชฐเชจเชพ เชธเชฎเซ‚เชน เชธเชพเชฅเซ‡, เช…เชจเซ‡?..

MTProto เชฅเซ€เชฎ เชตเชฟเชถเซ‡ เชจเซ‹เช‚เชงเชตเชพ เชœเซ‡เชตเซ€ เชฌเซ€เชœเซ€ เช•เซ‡เชŸเชฒเซ€เช• เชฌเชพเชฌเชคเซ‹ เช›เซ‡.

เชธเช‚เชฆเซ‡เชถ เชธเช‚เชฆเซ‡เชถเชพเช“, msg_id, msg_seqno, เชชเซเชทเซเชŸเชฟเช•เชฐเชฃ, เช–เซ‹เชŸเซ€ เชฆเชฟเชถเชพเชฎเชพเช‚ เชชเชฟเช‚เช—เซเชธ เช…เชจเซ‡ เช…เชจเซเชฏ เชฐเซ‚เชขเชฟเชชเซเชฐเชฏเซ‹เช—เซ‹

เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชฎเชจเชพ เชตเชฟเชถเซ‡ เชถเชพ เชฎเชพเชŸเซ‡ เชœเชพเชฃเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡? เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡เช“ เช‰เชšเซเชš เชธเซเชคเชฐ เชชเชฐ "เชฒเซ€เช•" เชฅเชพเชฏ เช›เซ‡, เช…เชจเซ‡ API เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชฎเชจเชพ เชตเชฟเชถเซ‡ เชœเชพเช—เซƒเชค เชฐเชนเซ‡เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชšเชพเชฒเซ‹ เชงเชพเชฐเซ€เช เช•เซ‡ เช…เชฎเชจเซ‡ msg_key เชฎเชพเช‚ เชฐเชธ เชจเชฅเซ€; เชจเซ€เชšเชฒเชพ เชธเซเชคเชฐเซ‡ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชฌเชงเซเช‚ เชกเชฟเช•เซเชฐเชฟเชชเซเชŸ เช•เชฐเซเชฏเซเช‚ เช›เซ‡. เชชเชฐเช‚เชคเซ เชกเชฟเช•เซเชฐเชฟเชชเซเชŸเซ‡เชก เชกเซ‡เชŸเชพเชจเซ€ เช…เช‚เชฆเชฐ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชจเซ€เชšเซ‡เชจเชพ เชซเซ€เชฒเซเชกเซเชธ เช›เซ‡ (เชกเซ‡เชŸเชพเชจเซ€ เชฒเช‚เชฌเชพเชˆ เชชเชฃ, เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ เชœเชพเชฃเซ€เช เช›เซ€เช เช•เซ‡ เชชเซ‡เชกเชฟเช‚เช— เช•เซเชฏเชพเช‚ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชจเชฅเซ€):

  • เชฎเซ€เช เซเช‚ - int64
  • เชธเซ‡เชถเชจ_เช†เชˆเชกเซ€ - int64
  • เชฎเซ‡เชธเซ‡เชœ_เช†เชˆเชกเซ€ - int64
  • seq_no - int32

เชšเชพเชฒเซ‹ เชคเชฎเชจเซ‡ เชฏเชพเชฆ เช…เชชเชพเชตเซ€เช เช•เซ‡ เชธเชฎเช—เซเชฐ เชกเซ€เชธเซ€ เชฎเชพเชŸเซ‡ เชฎเชพเชคเซเชฐ เชเช• เชœ เชฎเซ€เช เซเช‚ เช›เซ‡. เชถเชพ เชฎเชพเชŸเซ‡ เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชœเชพเชฃเซ‹ เช›เซ‹? เชฎเชพเชคเซเชฐ เชตเชฟเชจเช‚เชคเซ€ เช›เซ‡ เชเชŸเชฒเชพ เชฎเชพเชŸเซ‡ เชจเชนเซ€เช‚ get_future_salts, เชœเซ‡ เชคเชฎเชจเซ‡ เชœเชฃเชพเชตเซ‡ เช›เซ‡ เช•เซ‡ เช•เชฏเชพ เช…เช‚เชคเชฐเชพเชฒ เชฎเชพเชจเซเชฏ เชฐเชนเซ‡เชถเซ‡, เชชเชฃ เช เชชเชฃ เช•เชพเชฐเชฃ เช•เซ‡ เชœเซ‹ เชคเชฎเชพเชฐเซเช‚ เชฎเซ€เช เซเช‚ "เชธเชกเซ‡เชฒเซเช‚" เช›เซ‡, เชคเซ‹ เชธเช‚เชฆเซ‡เชถ (เชตเชฟเชจเช‚เชคเซ€) เช–เชพเชฒเซ€ เช–เซ‹เชตเชพเชˆ เชœเชถเซ‡. เชธเชฐเซเชตเชฐ, เช…เชฒเชฌเชคเซเชค, เชœเชพเชฐเซ€ เช•เชฐเซ€เชจเซ‡ เชจเชตเชพ เชฎเซ€เช เชพเชจเซ€ เชœเชพเชฃ เช•เชฐเชถเซ‡ new_session_created - เชชเชฐเช‚เชคเซ เชœเซ‚เชจเชพ เชธเชพเชฅเซ‡ เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเซ‡ เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เชซเชฐเซ€เชฅเซ€ เชฎเซ‹เช•เชฒเชตเซเช‚ เชชเชกเชถเซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡. เช…เชจเซ‡ เช† เชฎเซเชฆเซเชฆเซ‹ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐเชจเซ‡ เช…เชธเชฐ เช•เชฐเซ‡ เช›เซ‡.

เชธเชฐเซเชตเชฐเชจเซ‡ เชธเชคเซเชฐเซ‹ เชเช•เชธเชพเชฅเซ‡ เช›เซ‹เชกเซ€ เชฆเซ‡เชตเชพเชจเซ€ เช…เชจเซ‡ เช˜เชฃเชพ เช•เชพเชฐเชฃเซ‹เชธเชฐ เช† เชฐเซ€เชคเซ‡ เชชเซเชฐเชคเชฟเชธเชพเชฆ เช†เชชเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช›เซ‡. เชตเชพเชธเซเชคเชตเชฎเชพเช‚, เช•เซเชฒเชพเชฏเชจเซเชŸ เชคเชฐเชซเชฅเซ€ MTProto เชธเชคเซเชฐ เชถเซเช‚ เช›เซ‡? เช† เชฌเซ‡ เชจเช‚เชฌเชฐเซ‹ เช›เซ‡ session_id ะธ seq_no เช† เชธเชคเซเชฐเชฎเชพเช‚ เชธเช‚เชฆเซ‡เชถเชพเช“. เชธเชพเชฐเซเช‚, เช…เชจเซ‡ เช…เช‚เชคเชฐเซเช—เชค TCP เช•เชจเซ‡เช•เซเชถเชจ, เช…เชฒเชฌเชคเซเชค. เชšเชพเชฒเซ‹ เช•เชนเซ€เช เช•เซ‡ เช…เชฎเชพเชฐเชพ เช•เซเชฒเชพเชฏเช‚เชŸเชจเซ‡ เชนเชœเซ เชชเชฃ เช˜เชฃเซ€ เชตเชธเซเชคเซเช“ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซ€ เชคเซ‡ เช–เชฌเชฐ เชจเชฅเซ€, เชคเซ‡เชฃเซ‡ เชกเชฟเชธเซเช•เชจเซ‡เช•เซเชŸ เช•เชฐเซเชฏเซเช‚ เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซเชฏเซเช‚. เชœเซ‹ เช† เชเชกเชชเชฅเซ€ เชฅเชฏเซเช‚ - เชจเชตเชพ TCP เช•เชจเซ‡เช•เซเชถเชจเชฎเชพเช‚ เชœเซ‚เชจเซเช‚ เชธเชคเซเชฐ เชšเชพเชฒเซ เชฐเชนเซเชฏเซเช‚, เชตเชงเชพเชฐเซ‹ seq_no เช†เช—เชณ เชœเซ‹ เชคเซ‡ เชฒเชพเช‚เชฌเซ‹ เชธเชฎเชฏ เชฒเซ‡ เช›เซ‡, เชคเซ‹ เชธเชฐเซเชตเชฐ เชคเซ‡เชจเซ‡ เช•เชพเชขเซ€ เชถเช•เซ‡ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡เชจเซ€ เชฌเชพเชœเซเชฎเชพเช‚ เชคเซ‡ เชชเชฃ เชเช• เช•เชคเชพเชฐ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เช†เชชเชฃเซ‡ เชถเซ‹เชงเซ€ เช•เชพเชขเซเชฏเซเช‚ เช›เซ‡.

เชคเซ‡ เชถเซเช‚ เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช seq_no? เช“เชน, เชคเซ‡ เชเช• เชฎเซเชถเซเช•เซ‡เชฒ เชชเซเชฐเชถเซเชจ เช›เซ‡. เชถเซเช‚ เช…เชฐเซเชฅ เชนเชคเซ‹ เชคเซ‡ เชชเซเชฐเชพเชฎเชพเชฃเชฟเช•เชชเชฃเซ‡ เชธเชฎเชœเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‹:

เชธเชพเชฎเช—เซเชฐเซ€-เชธเช‚เชฌเช‚เชงเชฟเชค เชธเช‚เชฆเซ‡เชถ

เชธเซเชชเชทเซเชŸ เชธเซเชตเซ€เช•เซƒเชคเชฟ เชœเชฐเซ‚เชฐเซ€ เชธเช‚เชฆเซ‡เชถ. เช†เชฎเชพเช‚ เชฌเชงเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช…เชจเซ‡ เช˜เชฃเชพ เชธเซ‡เชตเชพ เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡, เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฐเซ€เชคเซ‡ เชฌเชงเชพ เช•เชจเซเชŸเซ‡เชจเชฐ เช…เชจเซ‡ เชธเซเชตเซ€เช•เซƒเชคเชฟเช“ เชธเชฟเชตเชพเชฏ.

เชธเช‚เชฆเซ‡เชถ เช•เซเชฐเชฎ เชจเช‚เชฌเชฐ (msg_seqno)

32-เชฌเซ€เชŸ เชจเช‚เชฌเชฐ "เชธเชพเชฎเช—เซเชฐเซ€-เชธเช‚เชฌเช‚เชงเชฟเชค" เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ€ เชฌเชฎเชฃเซ€ เชธเช‚เช–เซเชฏเชพ (เชœเซ‡เชจเซ‡ เชธเซเชตเซ€เช•เซƒเชคเชฟเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เช›เซ‡, เช…เชจเซ‡ เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชœเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ เชจเชฅเซ€) เชชเซเชฐเซ‡เชทเช• เชฆเซเชตเชพเชฐเชพ เช† เชธเช‚เชฆเซ‡เชถ เชชเชนเซ‡เชฒเชพเช‚ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชœเซ‹ เชตเชฐเซเชคเชฎเชพเชจ เชธเช‚เชฆเซ‡เชถ เชเช• เชนเซ‹เชฏ เชคเซ‹ เชคเซ‡ เชชเช›เซ€ เชเช• เชฆเซเชตเชพเชฐเชพ เชตเชงเชพเชฐเซ‹ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชธเชพเชฎเช—เซเชฐเซ€-เชธเช‚เชฌเช‚เชงเชฟเชค เชธเช‚เชฆเซ‡เชถ. เช•เชจเซเชŸเซ‡เชจเชฐ เชนเช‚เชฎเซ‡เชถเชพ เชคเซ‡เชจเชพ เชธเชฎเช—เซเชฐ เชธเชฎเชพเชตเชฟเชทเซเชŸเซ‹ เชชเช›เซ€ เชœเชจเชฐเซ‡เชŸ เชฅเชพเชฏ เช›เซ‡; เชคเซ‡เชฅเซ€, เชคเซ‡เชจเซ€ เช•เซเชฐเชฎ เชธเช‚เช–เซเชฏเชพ เชคเซ‡เชฎเชพเช‚ เชธเชฎเชพเชตเชฟเชทเซเชŸ เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ€ เช•เซเชฐเชฎ เชธเช‚เช–เซเชฏเชพ เช•เชฐเชคเชพ เชฎเซ‹เชŸเซ€ เช…เชฅเชตเชพ เชฌเชฐเชพเชฌเชฐ เช›เซ‡.

1 เชฆเซเชตเชพเชฐเชพ เชตเซƒเชฆเซเชงเชฟ เชธเชพเชฅเซ‡ เช† เช•เซ‡เชตเซเช‚ เชธเชฐเซเช•เชธ เช›เซ‡, เช…เชจเซ‡ เชชเช›เซ€ 2 เชฆเซเชตเชพเชฐเชพ เชฌเซ€เชœเซเช‚?.. เชฎเชจเซ‡ เชถเช‚เช•เชพ เช›เซ‡ เช•เซ‡ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชคเซ‡เชจเซ‹ เช…เชฐเซเชฅ "ACK เชฎเชพเชŸเซ‡ เชธเซŒเชฅเซ€ เช“เช›เซ‹ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฌเซ€เชŸ เช›เซ‡, เชฌเชพเช•เซ€เชจเซ‹ เชเช• เชจเช‚เชฌเชฐ เช›เซ‡", เชชเชฐเช‚เชคเซ เชชเชฐเชฟเชฃเชพเชฎ เชเช•เชฆเชฎ เชธเชฎเชพเชจ เชจเชฅเซ€ - เช–เชพเชธ เช•เชฐเซ€เชจเซ‡, เชคเซ‡ เชฌเชนเชพเชฐ เช†เชตเซ‡ เช›เซ‡, เชฎเซ‹เช•เชฒเซ€ เชถเช•เชพเชฏ เช›เซ‡ เช•เซ‡เชŸเชฒเชพเช• เชธเชฎเชพเชจ เชนเซ‹เชตเชพเชจเซ€ เชชเซเชทเซเชŸเชฟ seq_no! เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡? เชธเชพเชฐเซเช‚, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชธเชฐเซเชตเชฐ เช…เชฎเชจเซ‡ เช•เช‚เชˆเช• เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡, เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡, เช…เชจเซ‡ เช…เชฎเซ‡ เชชเซ‹เชคเซ‡ เชฎเซŒเชจ เชฐเชนเซ€เช เช›เซ€เช, เชซเช•เซเชค เชคเซ‡เชจเชพ เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ€ เชชเซเชฐเชพเชชเซเชคเชฟเชจเซ€ เชชเซเชทเซเชŸเชฟ เช•เชฐเชคเชพ เชธเซ‡เชตเชพ เชธเช‚เชฆเซ‡เชถเชพเช“ เชธเชพเชฅเซ‡ เชชเซเชฐเชคเชฟเชธเชพเชฆ เช†เชชเซ€เช เช›เซ€เช. เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช…เชฎเชพเชฐเชพ เช†เช‰เชŸเช—เซ‹เช‡เช‚เช— เช•เชจเซเชซเชฐเซเชฎเซ‡เชถเชจเชฎเชพเช‚ เชธเชฎเชพเชจ เช†เช‰เชŸเช—เซ‹เช‡เช‚เช— เชจเช‚เชฌเชฐ เชนเชถเซ‡. เชœเซ‹ เชคเชฎเซ‡ TCP เชฅเซ€ เชชเชฐเชฟเชšเชฟเชค เช›เซ‹ เช…เชจเซ‡ เชตเชฟเชšเชพเชฐเซเชฏเซเช‚ เช›เซ‡ เช•เซ‡ เช† เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เชœเช‚เช—เชฒเซ€ เชฒเชพเช—เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เช–เซ‚เชฌ เชœเช‚เช—เชฒเซ€ เชจเชฅเซ€ เชฒเชพเช—เชคเซเช‚, เช•เชพเชฐเชฃ เช•เซ‡ TCP เชฎเชพเช‚ seq_no เชฌเชฆเชฒเชพเชคเซเช‚ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชชเซเชทเซเชŸเชฟ เชฅเชพเชฏ เช›เซ‡ seq_no เชฌเซ€เชœเซ€ เชฌเชพเชœเซ, เชนเซเช‚ เชคเชฎเชจเซ‡ เชจเชพเชฐเชพเชœ เช•เชฐเชตเชพ เช‰เชคเชพเชตเชณ เช•เชฐเซ€เชถ. MTProto เชฎเชพเช‚ เชชเซเชทเซเชŸเชฟเช•เชฐเชฃเซ‹ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชจเชพ เชชเชฐ seq_no, เชœเซ‡เชฎ TCP เชฎเชพเช‚, เชชเชฐเช‚เชคเซ เชฆเซเชตเชพเชฐเชพ msg_id !

เช† เชถเซเช‚ เช›เซ‡ msg_id, เช† เช•เซเชทเซ‡เชคเซเชฐเซ‹เชฎเชพเช‚ เชธเซŒเชฅเซ€ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ? เชเช• เช…เชจเชจเซเชฏ เชธเช‚เชฆเซ‡เชถ เช“เชณเช–เช•เชฐเซเชคเชพ, เชœเซ‡เชฎ เช•เซ‡ เชจเชพเชฎ เชธเซ‚เชšเชตเซ‡ เช›เซ‡. เชคเซ‡เชจเซ‡ 64-เชฌเซ€เชŸ เชจเช‚เชฌเชฐ เชคเชฐเซ€เช•เซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡เชฎเชพเช‚เชฅเซ€ เชธเซŒเชฅเซ€ เชจเซ€เชšเชพ เชฌเชฟเชŸเซเชธเชฎเชพเช‚ เชซเชฐเซ€เชฅเซ€ "เชธเชฐเซเชตเชฐ-เชจเซ‹เชŸ-เชธเชฐเซเชตเชฐ" เชœเชพเชฆเซ เชนเซ‹เชฏ เช›เซ‡, เช…เชจเซ‡ เชฌเชพเช•เซ€เชจเซ‹ เชฏเซเชจเชฟเช•เซเชธ เชŸเชพเช‡เชฎเชธเซเชŸเซ‡เชฎเซเชช เช›เซ‡, เชœเซ‡เชฎเชพเช‚ เช…เชชเซ‚เชฐเซเชฃเชพเช‚เช• เชญเชพเช—เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡, 32 เชฌเชฟเชŸเซเชธ เชกเชพเชฌเซ€ เชคเชฐเชซ เช–เชธเซ‡เชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชคเซ‡. เชŸเชพเชˆเชฎเชธเซเชŸเซ‡เชฎเซเชช เชชเซเชฐเชคเชฟ เชธเซ‡ (เช…เชจเซ‡ เชธเชฎเชฏ เชธเชพเชฅเซ‡เชจเชพ เชธเช‚เชฆเซ‡เชถเชพเช“ เช•เซ‡ เชœเซ‡ เช–เซ‚เชฌ เชœ เช…เชฒเช— เชนเซ‹เชฏ เชธเชฐเซเชตเชฐ เชฆเซเชตเชพเชฐเชพ เชจเช•เชพเชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡). เช†เชฎเชพเช‚เชฅเซ€ เชคเซ‡ เชคเชพเชฐเชฃ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช† เชเช• เช“เชณเช–เช•เชฐเซเชคเชพ เช›เซ‡ เชœเซ‡ เช•เซเชฒเชพเชฏเช‚เชŸ เชฎเชพเชŸเซ‡ เชตเซˆเชถเซเชตเชฟเช• เช›เซ‡. เช†เชชเซ‡เชฒ เช›เซ‡ - เชšเชพเชฒเซ‹ เชฏเชพเชฆ เช•เชฐเซ€เช session_id - เช…เชฎเชจเซ‡ เช–เชพเชคเชฐเซ€ เช›เซ‡: เช•เซ‹เชˆ เชชเชฃ เชธเช‚เชœเซ‹เช—เซ‹เชฎเชพเช‚ เชเช• เชธเชคเซเชฐ เชฎเชพเชŸเซ‡เชจเซ‹ เชธเช‚เชฆเซ‡เชถ เชฌเซ€เชœเชพ เชธเชคเซเชฐเชฎเชพเช‚ เชฎเซ‹เช•เชฒเซ€ เชถเช•เชพเชคเซ‹ เชจเชฅเซ€. เชเชŸเชฒเซ‡ เช•เซ‡, เชคเซ‡ เชคเชพเชฐเชฃ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เชคเซเชฏเชพเช‚ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช›เซ‡ เชคเซเชฐเชฃ เชธเซเชคเชฐ - เชธเชคเซเชฐ, เชธเชคเซเชฐ เชจเช‚เชฌเชฐ, เชธเช‚เชฆเซ‡เชถ เช†เชˆเชกเซ€. เชถเชพ เชฎเชพเชŸเซ‡ เช†เชตเซ€ เช—เซ‚เช‚เชšเชตเชฃเซ‹, เช† เชฐเชนเชธเซเชฏ เช–เซ‚เชฌ เชœ เชฎเชนเชพเชจ เช›เซ‡.

เช…เชจเซ‡ เชคเซ‡เชฅเซ€, msg_id เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€...

RPC: เชตเชฟเชจเช‚เชคเซ€เช“, เชœเชตเชพเชฌเซ‹, เชญเซ‚เชฒเซ‹. เชชเซเชทเซเชŸเชฟเช•เชฐเชฃเซ‹.

เชœเซ‡เชฎ เชคเชฎเซ‡ เชจเซ‹เช‚เชงเซเชฏเซเช‚ เชนเชถเซ‡, เชกเชพเชฏเชพเช—เซเชฐเชพเชฎเชฎเชพเช‚ เช•เซเชฏเชพเช‚เชฏ เชชเชฃ เช•เซ‹เชˆ เชตเชฟเชถเซ‡เชท "RPC เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‹" เชชเซเชฐเช•เชพเชฐ เช…เชฅเชตเชพ เช•เชพเชฐเซเชฏ เชจเชฅเซ€, เชœเซ‹ เช•เซ‡ เชœเชตเชพเชฌเซ‹ เช›เซ‡. เช›เซ‡เชตเชŸเซ‡, เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชธเชพเชฎเช—เซเชฐเซ€-เชธเช‚เชฌเช‚เชงเชฟเชค เชธเช‚เชฆเซ‡เชถเชพเช“ เช›เซ‡! เชคเซ‡ เชœ, เช•เซ‹เชˆเชชเชฃ เชธเช‚เชฆเซ‡เชถ เชตเชฟเชจเช‚เชคเซ€ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡! เช…เชฅเชตเชพ เชจ เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช. เช…เช‚เชคเชฎเชพเช‚, เชฆเชฐเซ‡เช• เช›เซ‡ msg_id. เชชเชฐเช‚เชคเซ เชคเซเชฏเชพเช‚ เชœเชตเชพเชฌเซ‹ เช›เซ‡:

rpc_result#f35c6d01 req_msg_id:long result:Object = RpcResult;

เช† เชคเซ‡ เช›เซ‡ เชœเซเชฏเชพเช‚ เชคเซ‡ เชธเซ‚เชšเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช•เซ‡ เช† เช•เชฏเชพ เชธเช‚เชฆเซ‡เชถเชจเซ‹ เชชเซเชฐเชคเชฟเชธเชพเชฆ เช›เซ‡. เชคเซ‡เชฅเซ€, API เชจเชพ เชŸเซ‹เชšเชจเชพ เชธเซเชคเชฐเซ‡, เชคเชฎเชพเชฐเซ‡ เชฏเชพเชฆ เชฐเชพเช–เชตเซเช‚ เชชเชกเชถเซ‡ เช•เซ‡ เชคเชฎเชพเชฐเซ€ เชตเชฟเชจเช‚เชคเซ€เชจเซ‹ เชจเช‚เชฌเชฐ เชถเซเช‚ เชนเชคเซ‹ - เชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เช•เชพเชฐเซเชฏ เช…เชธเซเชฎเซ‡เชณ เช›เซ‡ เชคเซ‡ เชธเชฎเชœเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€, เช…เชจเซ‡ เชคเซ‡ เชœ เชธเชฎเชฏเซ‡ เช˜เชฃเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชชเซเชฐเช—เชคเชฟเชฎเชพเช‚ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡, เชœเซ‡เชจเชพ เชœเชตเชพเชฌเซ‹ เช•เซ‹เชˆเชชเชฃ เช•เซเชฐเชฎเชฎเชพเช‚ เชชเชฐเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡? เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เชฐเซ€เชคเซ‡, เช† เช…เชจเซ‡ เช•เซ‹เชˆ เช•เชพเชฎเชฆเชพเชฐเซ‹ เชœเซ‡เชตเชพ เชญเซ‚เชฒ เชธเช‚เชฆเซ‡เชถเชพเช“เชฎเชพเช‚เชฅเซ€, เช†เชจเซ€ เชชเชพเช›เชณเชจเซเช‚ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชถเซ‹เชงเซ€ เชถเช•เชพเชฏ เช›เซ‡: เชธเชฐเซเชตเชฐ เช•เซ‡ เชœเซ‡ เชคเชฎเชพเชฐเซ€ เชธเชพเชฅเซ‡ TCP เช•เชจเซ‡เช•เซเชถเชจ เชœเชพเชณเชตเซ€ เชฐเชพเช–เซ‡ เช›เซ‡ เชคเซ‡ เชซเซเชฐเชจเซเชŸ-เชเชจเซเชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เช›เซ‡, เชคเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ‡ เชฌเซ‡เช•เชเชจเซเชกเซเชธ เชชเชฐ เชซเซ‹เชฐเชตเชฐเซเชก เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเชพ เชฆเซเชตเชพเชฐเชพ เชชเชพเช›เชพ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡. message_id. เชเชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เช…เชนเซ€เช‚ เชฌเชงเซเช‚ เชธเซเชชเชทเซเชŸ, เชคเชพเชฐเซเช•เชฟเช• เช…เชจเซ‡ เชธเชพเชฐเซเช‚ เช›เซ‡.

เชนเชพ?.. เช…เชจเซ‡ เชœเซ‹ เชคเชฎเซ‡ เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชตเชฟเชšเชพเชฐเซ‹ เช›เซ‹? เช›เซ‡เชตเชŸเซ‡, RPC เชชเซเชฐเชคเชฟเชธเชพเชฆเชฎเชพเช‚ เชชเชฃ เชเช• เช•เซเชทเซ‡เชคเซเชฐ เช›เซ‡ msg_id! เชถเซเช‚ เช†เชชเชฃเซ‡ เชธเชฐเซเชตเชฐ เชชเชฐ เชšเซ€เชธเซ‹ เชชเชพเชกเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ "เชคเชฎเซ‡ เชฎเชพเชฐเชพ เชœเชตเชพเชฌเชจเซ‹ เชœเชตเชพเชฌ เช†เชชเชคเชพ เชจเชฅเซ€!"? เช…เชจเซ‡ เชนเชพ, เชชเซเชทเซเชŸเชฟ เชตเชฟเชถเซ‡ เชถเซเช‚ เชนเชคเซเช‚? เชชเซƒเชทเซเช  เชตเชฟเชถเซ‡ เชธเช‚เชฆเซ‡เชถเชพเช“ เชตเชฟเชถเซ‡ เชธเช‚เชฆเซ‡เชถเชพเช“ เช…เชฎเชจเซ‡ เช•เชนเซ‡ เช›เซ‡ เช•เซ‡ เชถเซเช‚ เช›เซ‡

msgs_ack#62d6b459 msg_ids:Vector long = MsgsAck;

เช…เชจเซ‡ เชคเซ‡ เชฆเชฐเซ‡เช• เชฌเชพเชœเซเช เชฅเชตเซเช‚ เชœเซ‹เชˆเช. เชชเชฐเช‚เชคเซ เชนเช‚เชฎเซ‡เชถเชพ เชจเชนเซ€เช‚! เชœเซ‹ เชคเชฎเชจเซ‡ RpcResult เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡, เชคเซ‹ เชคเซ‡ เชชเซ‹เชคเซ‡ เชœ เชชเซเชทเซเชŸเชฟ เชคเชฐเซ€เช•เซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡. เชเชŸเชฒเซ‡ เช•เซ‡, เชธเชฐเซเชตเชฐ เชคเชฎเชพเชฐเซ€ เชตเชฟเชจเช‚เชคเซ€เชจเซ‹ MsgsAck เชธเชพเชฅเซ‡ เชชเซเชฐเชคเชฟเชธเชพเชฆ เช†เชชเซ€ เชถเช•เซ‡ เช›เซ‡ - เชœเซ‡เชฎ เช•เซ‡, โ€œเชฎเชจเซ‡ เชคเซ‡ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซเช‚ เช›เซ‡.โ€ RpcResult เชคเชฐเชค เชœ เชœเชตเชพเชฌ เช†เชชเซ€ เชถเช•เซ‡ เช›เซ‡. เชคเซ‡ เชฌเช‚เชจเซ‡ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡.

เช…เชจเซ‡ เชนเชพ, เชœเชตเชพเชฌ เชคเซ‹ เชคเชพเชฐเซ‡ เชœ เช†เชชเชตเชพเชจเซ‹ เช›เซ‡! เชชเซเชทเซเชŸเชฟเช•เชฐเชฃ. เชจเชนเชฟเช‚เชคเชฐ, เชธเชฐเซเชตเชฐ เชคเซ‡เชจเซ‡ เช…เชตเชฟเชคเชฐเชฟเชค เช—เชฃเชถเซ‡ เช…เชจเซ‡ เชคเซ‡ เชคเชฎเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฎเซ‹เช•เชฒเชถเซ‡. เชชเซเชจเชƒเชœเซ‹เชกเชพเชฃ เชชเช›เซ€ เชชเชฃ. เชชเชฐเช‚เชคเซ เช…เชนเซ€เช‚, เช…เชฒเชฌเชคเซเชค, เชธเชฎเชฏเชธเชฎเชพเชชเซเชคเชฟเชจเซ‹ เชฎเซเชฆเซเชฆเซ‹ เช‰เชญเซ‹ เชฅเชพเชฏ เช›เซ‡. เชšเชพเชฒเซ‹ เชคเซ‡เชฎเชจเซ‡ เชฅเซ‹เชกเซ€ เชตเชพเชฐ เชชเช›เซ€ เชœเซ‹เชˆเช.

เช† เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชšเชพเชฒเซ‹ เชธเช‚เชญเชตเชฟเชค เช•เซเชตเซ‡เชฐเซ€ เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชญเซ‚เชฒเซ‹ เชœเซ‹เชˆเช.

rpc_error#2144ca19 error_code:int error_message:string = RpcError;

เช“เชน, เช•เซ‹เชˆ เช‰เชฆเซเช—เชพเชฐ เช•เชฐเชถเซ‡, เช…เชนเซ€เช‚ เชตเชงเซ เชฎเชพเชจเชตเซ€เชฏ เชซเซ‹เชฐเซเชฎเซ‡เชŸ เช›เซ‡ - เชคเซเชฏเชพเช‚ เชเช• เชฐเซ‡เช–เชพ เช›เซ‡! เชคเชฎเชพเชฐเซ‹ เชธเชฎเชฏ เชฒเซ‹. เช…เชนเซ€เช‚ เชญเซ‚เชฒเซ‹เชจเซ€ เชฏเชพเชฆเซ€, เชชเชฐเช‚เชคเซ เช…เชฒเชฌเชคเซเชค เชชเซ‚เชฐเซเชฃ เชจเชฅเซ€. เชคเซ‡เชฎเชพเช‚เชฅเซ€ เช†เชชเชฃเซ‡ เชถเซ€เช–เซ€เช เช›เซ€เช เช•เซ‡ เช•เซ‹เชก เช›เซ‡ เชœเซ‡เชตเซเช‚ เช•เช‚เชˆเช• HTTP เชญเซ‚เชฒเซ‹ (เชธเชพเชฐเซเช‚, เช…เชฒเชฌเชคเซเชค, เชชเซเชฐเชคเชฟเชธเชพเชฆเซ‹เชจเชพ เช…เชฐเซเชฅเชถเชพเชธเซเชคเซเชฐเชจเซ‡ เชฎเชพเชจ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเชคเซเช‚ เชจเชฅเซ€, เช•เซ‡เชŸเชฒเซ€เช• เชœเช—เซเชฏเชพเช เชคเซ‡ เช•เซ‹เชกเซเชธ เชตเชšเซเชšเซ‡ เช…เชตเซเชฏเชตเชธเซเชฅเชฟเชค เชฐเซ€เชคเซ‡ เชตเชฟเชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡), เช…เชจเซ‡ เชฒเชพเช‡เชจ เช†เชจเชพ เชœเซ‡เชตเซ€ เชฒเชพเช—เซ‡ เช›เซ‡ CAPITAL_LETTERS_AND_NUMBERS. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, PHONE_NUMBER_OCCUPIED เช…เชฅเชตเชพ FILE_PART_ะฅ_MISSING. เชธเชพเชฐเซเช‚, เชเชŸเชฒเซ‡ เช•เซ‡, เชคเชฎเชพเชฐเซ‡ เชนเชœเซ€ เชชเชฃ เช† เชฒเชพเช‡เชจเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ FLOOD_WAIT_3600 เช…เชฐเซเชฅ เชฅเชถเซ‡ เช•เซ‡ เชคเชฎเชพเชฐเซ‡ เชเช• เช•เชฒเชพเช• เชฐเชพเชน เชœเซ‹เชตเซ€ เชชเชกเชถเซ‡, เช…เชจเซ‡ PHONE_MIGRATE_5, เช•เซ‡ เช† เช‰เชชเชธเชฐเซเช— เชธเชพเชฅเซ‡เชจเซ‹ เชŸเซ‡เชฒเชฟเชซเซ‹เชจ เชจเช‚เชฌเชฐ 5เชฎเซ€ เชกเซ€เชธเซ€เชฎเชพเช‚ เชจเซ‹เช‚เชงเชพเชฏเซ‡เชฒ เชนเซ‹เชตเซ‹ เช†เชตเชถเซเชฏเช• เช›เซ‡. เช†เชชเชฃเซ€ เชชเชพเชธเซ‡ เชเช• เชชเซเชฐเช•เชพเชฐเชจเซ€ เชญเชพเชทเชพ เช›เซ‡ เชจเซ‡? เช…เชฎเชจเซ‡ เชธเซเชŸเซเชฐเชฟเช‚เช—เชฎเชพเช‚เชฅเซ€ เชฆเชฒเซ€เชฒเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€, เชจเชฟเชฏเชฎเชฟเชค เชฒเซ‹เช•เซ‹ เช•เชฐเชถเซ‡, เช เซ€เช• เช›เซ‡.

เชซเชฐเซ€เชฅเซ€, เช† เชธเซ‡เชตเชพ เชธเช‚เชฆเซ‡เชถเชพ เชชเซƒเชทเซเช  เชชเชฐ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ, เช† เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชธเชพเชฅเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชธเชพเชฎเชพเชจเซเชฏ เช›เซ‡ เชคเซ‡เชฎ, เชฎเชพเชนเชฟเชคเซ€ เชถเซ‹เชงเซ€ เชถเช•เชพเชฏ เช›เซ‡ เช…เชจเซเชฏ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชชเซƒเชทเซเช  เชชเชฐ. เช…เชฅเชตเชพ เชถเช‚เช•เชพ เชตเซเชฏเช•เซเชค เช•เชฐเซ‹. เชชเซเชฐเชฅเชฎ, เชœเซเช“, เชŸเชพเช‡เชชเชฟเช‚เช—/เชธเซเชคเชฐเชจเซเช‚ เช‰เชฒเซเชฒเช‚เช˜เชจ - RpcError เชฎเชพเช‚ เชจเซ‡เชธเซเชŸ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ RpcResult. เชฌเชนเชพเชฐ เช•เซ‡เชฎ เชจเชนเซ€เช‚? เช…เชฎเซ‡ เชถเซเช‚ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชจ เชฒเซ€เชงเซเช‚?.. เชคเซ‡ เชฎเซเชœเชฌ, เชคเซ‡เชจเซ€ เช—เซ‡เชฐเช‚เชŸเซ€ เช•เซเชฏเชพเช‚ เช›เซ‡ RpcError เชฎเชพเช‚ เชเชฎเซเชฌเซ‡เชก เชจ เชฅเชˆ เชถเช•เซ‡ RpcResult, เชชเชฐเช‚เชคเซ เชธเซ€เชงเชพ เช…เชฅเชตเชพ เช…เชจเซเชฏ เชชเซเชฐเช•เชพเชฐเชฎเชพเช‚ เชจเซ‡เชธเซเชŸเซ‡เชก เชฌเชจเซ‹?.. เช…เชจเซ‡ เชœเซ‹ เชคเซ‡ เชจ เช•เชฐเซ€ เชถเช•เซ‡, เชคเซ‹ เชคเซ‡ เชถเชพ เชฎเชพเชŸเซ‡ เชŸเซ‹เชšเชจเชพ เชธเซเชคเชฐเซ‡ เชจเชฅเซ€, เชเชŸเชฒเซ‡ เช•เซ‡. เชคเซ‡ เช–เซ‚เชŸเซ‡ เช›เซ‡ req_msg_id ? ..

เชชเชฐเช‚เชคเซ เชšเชพเชฒเซ‹ เชธเซ‡เชตเชพ เชธเช‚เชฆเซ‡เชถเชพเช“ เชตเชฟเชถเซ‡ เชšเชพเชฒเซ เชฐเชพเช–เซ€เช. เช•เซเชฒเชพเชฏเช‚เชŸ เชตเชฟเชšเชพเชฐเซ€ เชถเช•เซ‡ เช›เซ‡ เช•เซ‡ เชธเชฐเซเชตเชฐ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏเชฅเซ€ เชตเชฟเชšเชพเชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เช…เชจเซ‡ เช† เช…เชฆเซเชญเซเชค เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‡ เช›เซ‡:

rpc_drop_answer#58e4a740 req_msg_id:long = RpcDropAnswer;

เช† เชชเซเชฐเชถเซเชจเชจเชพ เชคเซเชฐเชฃ เชธเช‚เชญเชตเชฟเชค เชœเชตเชพเชฌเซ‹ เช›เซ‡, เชœเซ‡ เชซเชฐเซ€เชฅเซ€ เชชเซเชทเซเชŸเชฟเช•เชฐเชฃ เชชเชฆเซเชงเชคเชฟ เชธเชพเชฅเซ‡ เช›เซ‡เชฆเซ‡ เช›เซ‡; เชคเซ‡เช“ เชถเซเช‚ เชนเซ‹เชตเชพ เชœเซ‹เชˆเช เชคเซ‡ เชธเชฎเชœเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช (เช…เชจเซ‡ เช•เชฏเชพ เชชเซเชฐเช•เชพเชฐเซ‹เชจเซ€ เชธเชพเชฎเชพเชจเซเชฏ เชธเซ‚เชšเชฟ เช•เซ‡ เชœเซ‡เชจเซ‡ เชชเซเชทเซเชŸเชฟเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€) เชนเซ‹เชฎเชตเชฐเซเช• เชคเชฐเซ€เช•เซ‡ เชฐเซ€เชกเชฐ เชชเชฐ เช›เซ‹เชกเซ€ เชฆเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ (เชจเซ‹เช‚เชง: เชฎเชพเชนเชฟเชคเซ€ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชกเซ‡เชธเซเช•เชŸเซ‹เชช เชธเซ‹เชฐเซเชธ เช•เซ‹เชก เชชเซ‚เชฐเซเชฃ เชจเชฅเซ€).

เชกเซเชฐเช— เชตเซเชฏเชธเชจ: เชธเช‚เชฆเซ‡เชถ เชธเซเชฅเชฟเชคเชฟเช“

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, TL, MTProto เช…เชจเซ‡ Telegram เชฎเชพเช‚ เช˜เชฃเซ€ เชœเช—เซเชฏเชพเช“ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชœเซ€เชฆเชจเซ€ เชฒเชพเช—เชฃเซ€ เช›เซ‹เชกเซ€ เชฆเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชจเชฎเซเชฐเชคเชพ, เช•เซเชจเซ‡เชน เช…เชจเซ‡ เช…เชจเซเชฏ เชตเซเชฏเชตเชนเชพเชฐ เช†เชตเชกเชค เช…เชฎเซ‡ เชจเชฎเซเชฐเชคเชพเชชเซ‚เชฐเซเชตเช• เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชฎเซŒเชจ เชฐเชพเช–เซเชฏเซเช‚, เช…เชจเซ‡ เชธเช‚เชตเชพเชฆเซ‹เชฎเชพเช‚ เช…เชถเซเชฒเซ€เชฒเชคเชพเชจเซ‡ เชธเซ‡เชจเซเชธเชฐ เช•เชฐเซ€. เชœเซ‹ เช•เซ‡, เช† เชธเซเชฅเชณะžเชฎเซ‹เชŸเชพเชญเชพเช—เชจเชพ เชชเซƒเชทเซเช  เชตเชฟเชถเซ‡ เช›เซ‡ เชธเช‚เชฆเซ‡เชถเชพเช“ เชตเชฟเชถเซ‡ เชธเช‚เชฆเซ‡เชถเชพเช“ เชคเซ‡ เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชชเชฃ เช†เช˜เชพเชคเชœเชจเช• เช›เซ‡, เชœเซ‡ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏเชฅเซ€ เชจเซ‡เชŸเชตเชฐเซเช• เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฃเซ‡ เชตเชฟเชตเชฟเชง เชชเซเชฐเช•เชพเชฐเชจเซ€ เช•เซเชŸเชฟเชฒเชคเชพเชจเซ€ เชธเชพเชฏเช•เชฒ เชœเซ‹เชˆ เช›เซ‡.

เชคเซ‡ เชจเชฟเชฐเซเชฆเซ‹เชท เชฐเซ€เชคเซ‡, เชชเซเชทเซเชŸเชฟเช•เชฐเชฃ เชธเชพเชฅเซ‡ เชถเชฐเซ‚ เชฅเชพเชฏ เช›เซ‡. เช†เช—เชณ เชคเซ‡เช“ เช…เชฎเชจเซ‡ เชตเชฟเชถเซ‡ เช•เชนเซ‡ เช›เซ‡

bad_msg_notification#a7eff811 bad_msg_id:long bad_msg_seqno:int error_code:int = BadMsgNotification;
bad_server_salt#edab447b bad_msg_id:long bad_msg_seqno:int error_code:int new_server_salt:long = BadMsgNotification;

เช เซ€เช• เช›เซ‡, MTProto เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเชจเชพเชฐ เชฆเชฐเซ‡เช• เชตเซเชฏเช•เซเชคเชฟเช เชคเซ‡เชฎเชจเซ€ เชธเชพเชฅเซ‡ เชตเซเชฏเชตเชนเชพเชฐ เช•เชฐเชตเซ‹ เชชเชกเชถเซ‡; "เชธเซเชงเชพเชฐเซ‡เชฒ - เชชเซเชจเชƒเชธเช‚เช•เชฒเชฟเชค - เชฒเซ‹เชจเซเชš" เชšเช•เซเชฐเชฎเชพเช‚, เชธเช‚เชชเชพเชฆเชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ เช–เชฐเชพเชฌ เชฅเชตเชพเชฎเชพเช‚ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชฟเชค เชฅเชฏเซ‡เชฒ เชจเช‚เชฌเชฐ เชญเซ‚เชฒเซ‹ เช…เชฅเชตเชพ เชฎเซ€เช เซเช‚ เชฎเซ‡เชณเชตเชตเซเช‚ เช เชเช• เชธเชพเชฎเชพเชจเซเชฏ เชฌเชพเชฌเชค เช›เซ‡. เชœเซ‹ เช•เซ‡, เช…เชนเซ€เช‚ เชฌเซ‡ เชฎเซเชฆเซเชฆเชพ เช›เซ‡:

  1. เชฎเชคเชฒเชฌ เช•เซ‡ เชฎเซ‚เชณ เชธเช‚เชฆเซ‡เชถ เช–เซ‹เชตเชพเชˆ เช—เชฏเซ‹ เช›เซ‡. เช…เชฎเชพเชฐเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เช•เชคเชพเชฐ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชชเช›เซ€เชฅเซ€ เชœเซ‹เชˆเชถเซเช‚.
  2. เช† เชตเชฟเชšเชฟเชคเซเชฐ เชญเซ‚เชฒ เชจเช‚เชฌเชฐเซ‹ เชถเซเช‚ เช›เซ‡? 16, 17, 18, 19, 20, 32, 33, 34, 35, 48, 64... เช…เชจเซเชฏ เชจเช‚เชฌเชฐเซ‹ เช•เซเชฏเชพเช‚ เช›เซ‡, เชŸเซ‹เชฎเซ€?

เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชœเชฃเชพเชตเซ‡ เช›เซ‡:

เชนเซ‡เชคเซ เช เช›เซ‡ เช•เซ‡ error_code เชฎเซ‚เชฒเซเชฏเซ‹ เชœเซ‚เชฅเชฌเชฆเซเชง เช›เซ‡ (error_code >> 4): เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช•เซ‹เชก 0x40 โ€” 0x4f เช•เชจเซเชŸเซ‡เชจเชฐ เชตเชฟเช˜เชŸเชจเชฎเชพเช‚ เชญเซ‚เชฒเซ‹เชจเซ‡ เช…เชจเซเชฐเซ‚เชช เช›เซ‡.

เชชเชฐเช‚เชคเซ, เชชเซเชฐเชฅเชฎ, เชฌเซ€เชœเซ€ เชฆเชฟเชถเชพเชฎเชพเช‚ เชถเชฟเชซเซเชŸ, เช…เชจเซ‡ เชฌเซ€เชœเซเช‚, เชคเซ‡ เช•เซ‹เชˆ เชตเชพเช‚เชงเซ‹ เชจเชฅเซ€, เช…เชจเซเชฏ เช•เซ‹เชก เช•เซเชฏเชพเช‚ เช›เซ‡? เชฒเซ‡เช–เช•เชจเชพ เชฎเชพเชฅเชพเชฎเชพเช‚?.. เชœเซ‹ เช•เซ‡, เช† เชจเชœเซ€เชตเซ€ เชฌเชพเชฌเชคเซ‹ เช›เซ‡.

เชธเช‚เชฆเซ‡เชถเชจเซ€ เชธเซเชฅเชฟเชคเชฟเช“ เช…เชจเซ‡ เชธเช‚เชฆเซ‡เชถเชจเซ€ เชจเช•เชฒเซ‹ เชตเชฟเชถเซ‡เชจเชพ เชธเช‚เชฆเซ‡เชถเชพเช“เชฎเชพเช‚ เชตเซเชฏเชธเชจเชจเซ€ เชถเชฐเซ‚เช†เชค เชฅเชพเชฏ เช›เซ‡:

  • เชธเช‚เชฆเซ‡เชถ เชธเซเชฅเชฟเชคเชฟ เชฎเชพเชนเชฟเชคเซ€ เชฎเชพเชŸเซ‡ เชตเชฟเชจเช‚เชคเซ€
    เชœเซ‹ เช•เซ‹เชˆเชชเชฃ เชชเช•เซเชทเซ‡ เชคเซ‡เชจเชพ เช†เช‰เชŸเช—เซ‹เช‡เช‚เช— เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ€ เชธเซเชฅเชฟเชคเชฟ เช…เช‚เช—เซ‡ เชฅเซ‹เชกเชพ เชธเชฎเชฏ เชฎเชพเชŸเซ‡ เชฎเชพเชนเชฟเชคเซ€ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ€ เชจ เชนเซ‹เชฏ, เชคเซ‹ เชคเซ‡ เช…เชจเซเชฏ เชชเช•เซเชท เชชเชพเชธเซ‡เชฅเซ€ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡:
    msgs_state_req#da69fb52 msg_ids:Vector long = MsgsStateReq;
  • เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ€ เชธเซเชฅเชฟเชคเชฟ เชธเช‚เชฌเช‚เชงเชฟเชค เชฎเชพเชนเชฟเชคเซ€เชชเซเชฐเชฆ เชธเช‚เชฆเซ‡เชถ
    msgs_state_info#04deb57d req_msg_id:long info:string = MsgsStateInfo;
    เช…เชนเซ€เช‚, info เช เชเช• เชธเซเชŸเซเชฐเชฟเช‚เช— เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เช†เชตเชจเชพเชฐเชพ msg_ids เชธเซ‚เชšเชฟเชฎเชพเช‚เชฅเซ€ เชฆเชฐเซ‡เช• เชธเช‚เชฆเซ‡เชถ เชฎเชพเชŸเซ‡ เชธเช‚เชฆเซ‡เชถเชจเซ€ เชธเซเชฅเชฟเชคเชฟเชจเซ€ เชฌเชฐเชพเชฌเชฐ เชเช• เชฌเชพเช‡เชŸ เชถเชพเชฎเซ‡เชฒ เช›เซ‡:

    • 1 = เชธเช‚เชฆเซ‡เชถ เชตเชฟเชถเซ‡ เช•เชถเซเช‚ เชœ เชœเชพเชฃเซ€เชคเซเช‚ เชจเชฅเซ€ (msg_id เช–เซ‚เชฌ เช“เช›เซ€ เช›เซ‡, เช…เชจเซเชฏ เชชเช•เซเชท เช•เชฆเชพเชš เชคเซ‡เชจเซ‡ เชญเซ‚เชฒเซ€ เช—เชฏเซ‹ เชนเชถเซ‡)
    • 2 = เชธเช‚เชฆเซ‡เชถ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซ‹ เชจเชฅเซ€ (msg_id เชธเช‚เช—เซเชฐเชนเชฟเชค เช“เชณเช–เช•เชฐเซเชคเชพเช“เชจเซ€ เชถเซเชฐเซ‡เชฃเซ€เชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡; เชœเซ‹ เช•เซ‡, เช…เชจเซเชฏ เชชเช•เซเชทเชจเซ‡ เชšเซ‹เช•เซเช•เชธเชชเชฃเซ‡ เช†เชตเซ‹ เชธเช‚เชฆเซ‡เชถ เชฎเชณเซเชฏเซ‹ เชจเชฅเซ€)
    • 3 = เชธเช‚เชฆเซ‡เชถ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซ‹ เชจเชฅเซ€ (msg_id เช–เซ‚เชฌ เชตเชงเชพเชฐเซ‡ เช›เซ‡; เชœเซ‹ เช•เซ‡, เช…เชจเซเชฏ เชชเช•เซเชทเชจเซ‡ เชšเซ‹เช•เซเช•เชธเชชเชฃเซ‡ เชคเซ‡ เชนเชœเซ€ เชธเซเชงเซ€ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซ‹ เชจเชฅเซ€)
    • 4 = เชธเช‚เชฆเซ‡เชถ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซ‹ (เชจเซ‹เช‚เชง เช•เชฐเซ‹ เช•เซ‡ เช† เชชเซเชฐเชคเชฟเชญเชพเชต เชคเซ‡ เชœ เชธเชฎเชฏเซ‡ เชเช• เชฐเชธเซ€เชฆ เชธเซเชตเซ€เช•เซƒเชคเชฟ เชชเชฃ เช›เซ‡)
    • +8 = เชธเช‚เชฆเซ‡เชถ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชธเซเชตเซ€เช•เซƒเชค เช›เซ‡
    • +16 = เชธเช‚เชฆเซ‡เชถเชจเซ‡ เชธเซเชตเซ€เช•เซƒเชคเชฟเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€
    • +32 = เชธเช‚เชฆเซ‡เชถเชฎเชพเช‚ เชธเชฎเชพเชตเชฟเชทเซเชŸ RPC เช•เซเชตเซ‡เชฐเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฅเชˆ เชฐเชนเซ€ เช›เซ‡ เช…เชฅเชตเชพ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชชเซ‚เชฐเซเชฃ เช›เซ‡
    • +64 = เชธเช‚เชฆเซ‡เชถ เชฎเชพเชŸเซ‡ เชธเชพเชฎเช—เซเชฐเซ€-เชธเช‚เชฌเช‚เชงเชฟเชค เชชเซเชฐเชคเชฟเชธเชพเชฆ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡เชฒ เช›เซ‡
    • +128 = เช…เชจเซเชฏ เชชเช•เซเชท เช เชนเช•เซ€เช•เชค เชฎเชพเชŸเซ‡ เชœเชพเชฃเซ‡ เช›เซ‡ เช•เซ‡ เชธเช‚เชฆเซ‡เชถ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซ‹ เช›เซ‡
      เช† เชชเซเชฐเชคเชฟเชญเชพเชตเชจเซ‡ เชธเซเชตเซ€เช•เซƒเชคเชฟเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เชคเซ‡ เชธเช‚เชฌเช‚เชงเชฟเชค msgs_state_req เชจเซ€ เชธเซเชตเซ€เช•เซƒเชคเชฟ เช›เซ‡.
      เชจเซ‹เช‚เชง เช•เชฐเซ‹ เช•เซ‡ เชœเซ‹ เชคเซ‡ เช…เชšเชพเชจเช• เชฌเชนเชพเชฐ เช†เชตเซ‡ เช›เซ‡ เช•เซ‡ เช…เชจเซเชฏ เชชเช•เซเชท เชชเชพเชธเซ‡ เช•เซ‹เชˆ เชธเช‚เชฆเซ‡เชถ เชจเชฅเซ€ เชœเซ‡ เชคเซ‡เชจเซ‡ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเซ‹เชฏ เชคเซ‡เชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡, เชคเซ‹ เชธเช‚เชฆเซ‡เชถ เชซเช•เซเชค เชซเชฐเซ€เชฅเซ€ เชฎเซ‹เช•เชฒเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชœเซ‹ เช…เชจเซเชฏ เชชเช•เซเชทเชจเซ‡ เชเช• เชœ เชธเชฎเชฏเซ‡ เชธเช‚เชฆเซ‡เชถเชจเซ€ เชฌเซ‡ เชจเช•เชฒเซ‹ เชชเซเชฐเชพเชชเซเชค เชฅเชตเซ€ เชœเซ‹เชˆเช, เชคเซ‹ เชชเชฃ เชกเซเชชเซเชฒเชฟเช•เซ‡เชŸเชจเซ‡ เช…เชตเช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. (เชœเซ‹ เช˜เชฃเซ‹ เชธเชฎเชฏ เชชเชธเชพเชฐ เชฅเชˆ เช—เชฏเซ‹ เชนเซ‹เชฏ, เช…เชจเซ‡ เชฎเซ‚เชณ msg_id เชนเชตเซ‡ เชฎเชพเชจเซเชฏ เชจเชฅเซ€, เชคเซ‹ เชธเช‚เชฆเซ‡เชถเชจเซ‡ msg_copy เชฎเชพเช‚ เชฒเชชเซ‡เชŸเชตเซ‹ เชœเซ‹เชˆเช).
  • เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ€ เชธเซเชฅเชฟเชคเชฟเชจเซ‹ เชธเซเชตเซˆเชšเซเช›เชฟเช• เชธเช‚เชšเชพเชฐ
    เช•เซ‹เชˆเชชเชฃ เชชเช•เซเชท เชธเซเชตเซ‡เชšเซเช›เชพเช เช…เชจเซเชฏ เชชเช•เซเชท เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชธเชพเชฐเชฟเชค เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ€ เชธเซเชฅเชฟเชคเชฟ เชตเชฟเชถเซ‡ เช…เชจเซเชฏ เชชเช•เซเชทเชจเซ‡ เชœเชพเชฃ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.
    msgs_all_info#8cc0d131 msg_ids:Vector long info:string = MsgsAllInfo
  • เชเช• เชธเช‚เชฆเซ‡เชถเชจเซ€ เชธเซเชฅเชฟเชคเชฟเชจเซ‹ เชตเชฟเชธเซเชคเซƒเชค เชธเซเชตเซˆเชšเซเช›เชฟเช• เชธเช‚เชšเชพเชฐ
    ...
    msg_detailed_info#276d3ec6 msg_id:long answer_msg_id:long bytes:int status:int = MsgDetailedInfo;
    msg_new_detailed_info#809db6df answer_msg_id:long bytes:int status:int = MsgDetailedInfo;
  • เชธเช‚เชฆเซ‡เชถเชพเช“ เชซเชฐเซ€เชฅเซ€ เชฎเซ‹เช•เชฒเชตเชพ เชฎเชพเชŸเซ‡ เชธเซเชชเชทเซเชŸ เชตเชฟเชจเช‚เชคเซ€
    msg_resend_req#7d861a08 msg_ids:Vector long = MsgResendReq;
    เชฐเชฟเชฎเซ‹เชŸ เชชเชพเชฐเซเชŸเซ€ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‡เชฒ เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฎเซ‹เช•เชฒเซ€เชจเซ‡ เชคเชฐเชค เชœ เชœเชตเชพเชฌ เช†เชชเซ‡ เช›เซ‡ [โ€ฆ]
  • เชœเชตเชพเชฌเซ‹ เชซเชฐเซ€เชฅเซ€ เชฎเซ‹เช•เชฒเชตเชพ เชฎเชพเชŸเซ‡ เชธเซเชชเชทเซเชŸ เชตเชฟเชจเช‚เชคเซ€
    msg_resend_ans_req#8610baeb msg_ids:Vector long = MsgResendReq;
    เชฐเชฟเชฎเซ‹เชŸ เชชเชพเชฐเซเชŸเซ€ เชคเชฐเชค เชœ เชซเชฐเซ€เชฅเซ€ เชฎเซ‹เช•เชฒเซ€เชจเซ‡ เชœเชตเชพเชฌ เช†เชชเซ‡ เช›เซ‡ เชœเชตเชพเชฌเซ‹ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‡เชฒเชพ เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ‡ [โ€ฆ]
  • เชธเช‚เชฆเซ‡เชถ เชจเช•เชฒเซ‹
    เช•เซ‡เชŸเชฒเซ€เช• เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“เชฎเชพเช‚, msg_id เชธเชพเชฅเซ‡เชจเซ‹ เชœเซ‚เชจเซ‹ เชธเช‚เชฆเซ‡เชถ เชœเซ‡ เชนเชตเซ‡ เชฎเชพเชจเซเชฏ เชจเชฅเซ€ เชคเซ‡เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฎเซ‹เช•เชฒเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชชเช›เซ€, เชคเซ‡ เชจเช•เชฒ เช•เชจเซเชŸเซ‡เชจเชฐเชฎเชพเช‚ เช†เชตเชฐเชฟเชค เช›เซ‡:
    msg_copy#e06046b2 orig_message:Message = MessageCopy;
    เชเช•เชตเชพเชฐ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเชพ เชชเช›เซ€, เชธเช‚เชฆเซ‡เชถ เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชœเชพเชฃเซ‡ เช•เซ‡ เชฐเซ‡เชชเชฐ เชคเซเชฏเชพเช‚ เชจ เชนเซ‹เชฏ. เชœเซ‹ เช•เซ‡, เชœเซ‹ เชคเซ‡ เชšเซ‹เช•เซเช•เชธ เชฎเชพเชŸเซ‡ เชœเชพเชฃเซ€เชคเซเช‚ เชนเซ‹เชฏ เช•เซ‡ orig_message.msg_id เชธเช‚เชฆเซ‡เชถ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซ‹ เชนเชคเซ‹, เชคเซ‹ เชจเชตเชพ เชธเช‚เชฆเซ‡เชถ เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชคเซ€ เชจเชฅเซ€ (เชœเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เชคเซ‡ เช…เชจเซ‡ orig_message.msg_id เชธเซเชตเซ€เช•เชพเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡). orig_message.msg_id เชจเซเช‚ เชฎเซ‚เชฒเซเชฏ เช•เชจเซเชŸเซ‡เชจเชฐเชจเชพ msg_id เช•เชฐเชคเชพเช‚ เช“เช›เซเช‚ เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช.

เชšเชพเชฒเซ‹ เชถเซเช‚ เชตเชฟเชถเซ‡ เชฎเซŒเชจ เชชเชฃ เชฐเชพเช–เซ€เช msgs_state_info เชซเชฐเซ€เชฅเซ€ เช…เชชเซ‚เชฐเซเชฃ TL เชจเชพ เช•เชพเชจ เชšเซ‹เช‚เชŸเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡ (เช…เชฎเชจเซ‡ เชฌเชพเชˆเชŸเชจเชพ เชตเซ‡เช•เซเชŸเชฐเชจเซ€ เชœเชฐเซ‚เชฐ เชนเชคเซ€, เช…เชจเซ‡ เชจเซ€เชšเซ‡เชจเชพ เชฌเซ‡ เชฌเชฟเชŸเซเชธเชฎเชพเช‚ เชเช• เชเชจเชฎ เชนเชคเซเช‚, เช…เชจเซ‡ เช‰เชชเชฐเชจเชพ เชฌเซ‡ เชฌเชฟเชŸเซเชธเชฎเชพเช‚ เชซเซเชฒเซ‡เช— เชนเชคเชพ). เชตเชพเชค เชœเซเชฆเซ€ เช›เซ‡. เช•เซ‹เชˆ เชธเชฎเชœเซ‡ เช›เซ‡ เช•เซ‡ เช† เชฌเชงเซเช‚ เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เช•เซ‡เชฎ เช›เซ‡? เชตเชพเชธเซเชคเชตเชฟเช• เช—เซเชฐเชพเชนเช•เชฎเชพเช‚ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡?.. เชฎเซเชถเซเช•เซ‡เชฒเซ€ เชธเชพเชฅเซ‡, เชชเชฐเช‚เชคเซ เชœเซ‹ เช•เซ‹เชˆ เชตเซเชฏเช•เซเชคเชฟ เชกเชฟเชฌเช—เซ€เช‚เช—เชฎเชพเช‚ เชฐเซ‹เช•เชพเชฏเซ‡เชฒ เชนเซ‹เชฏ, เช…เชจเซ‡ เช‡เชจเซเชŸเชฐเซ‡เช•เซเชŸเชฟเชต เชฎเซ‹เชกเชฎเชพเช‚ เชนเซ‹เชฏ เชคเซ‹ เช•เซ‹เชˆ เชฒเชพเชญเชจเซ€ เช•เชฒเซเชชเชจเชพ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ - เชธเชฐเซเชตเชฐเชจเซ‡ เชชเซ‚เช›เซ‹ เช•เซ‡ เชถเซเช‚ เช…เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡. เชชเชฐเช‚เชคเซ เช…เชนเซ€เช‚ เชตเชฟเชจเช‚เชคเซ€เช“ เชตเชฐเซเชฃเชตเซ‡เชฒ เช›เซ‡ เชฐเชพเช‰เชจเซเชก เชŸเซเชฐเซ€เชช.

เชคเซ‡ เช…เชจเซเชธเชฐเซ‡ เช›เซ‡ เช•เซ‡ เชฆเชฐเซ‡เช• เชชเช•เซเชทเซ‡ เชฎเชพเชคเซเชฐ เชเชจเซเช•เซเชฐเชฟเชชเซเชŸ เช…เชจเซ‡ เชธเช‚เชฆเซ‡เชถเชพ เชฎเซ‹เช•เชฒเชตเชพ เชœ เชœเซ‹เชˆเช เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เช…เชœเซเชžเชพเชค เชธเชฎเชฏ เชฎเชพเชŸเซ‡ เชคเซ‡เชฎเชจเชพ เชตเชฟเชถเซ‡, เชคเซ‡เชฎเชจเชพ เชœเชตเชพเชฌเซ‹ เชตเชฟเชถเซ‡เชจเซ‹ เชกเซ‡เชŸเชพ เชชเชฃ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช. เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เช† เชธเซเชตเชฟเชงเชพเช“เชจเชพ เชธเชฎเชฏ เช…เชฅเชตเชพ เชตเซเชฏเชตเชนเชพเชฐเชฟเช• เชฒเชพเช—เซ เชชเชพเชกเชตเชพเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชคเซเช‚ เชจเชฅเซ€. เช•เซ‹เชˆ เชฐเซ€เชคเซ‡. เชธเซŒเชฅเซ€ เช…เชฆเซเชญเซเชค เชฌเชพเชฌเชค เช เช›เซ‡ เช•เซ‡ เชคเซ‡เช“ เช–เชฐเซ‡เช–เชฐ เชธเชคเซเชคเชพเชตเชพเชฐ เช—เซเชฐเชพเชนเช•เซ‹เชจเชพ เช•เซ‹เชกเชฎเชพเช‚ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชฏ เช›เซ‡! เชฆเซ‡เช–เซ€เชคเซ€ เชฐเซ€เชคเซ‡ เชคเซ‡เช“เชจเซ‡ เช•เช‚เชˆเช• เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เชœเซ‡ เชœเชพเชนเซ‡เชฐ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃเชฎเชพเช‚ เชธเชฎเชพเชตเซ‡เชฒ เชจเชฅเซ€. เช•เซ‹เชก เชชเชฐเชฅเซ€ เชธเชฎเชœเซ‹ เชถเชพ เชฎเชพเชŸเซ‡, เชนเชตเซ‡ TL เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชœเซ‡เชŸเชฒเซเช‚ เชธเชฐเชณ เชจเชฅเซ€ - เชคเซ‡ (เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚) เชคเชพเชฐเซเช•เชฟเช• เชฐเซ€เชคเซ‡ เช…เชฒเช— เชญเชพเช— เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒ เชเช• เชญเชพเช— เช›เซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช•เซ‹เชก เชธเชฎเชœเชตเชพ เชฎเชพเชŸเซ‡ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฐเซ€เชคเซ‡ เชตเชงเซ เชธเชฎเชฏเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡.

เชชเชฟเช‚เช—เซเชธ เช…เชจเซ‡ เชธเชฎเชฏ. เช•เชคเชพเชฐเซ‹.

เชฆเชฐเซ‡เช• เชตเชธเซเชคเซเชฎเชพเช‚เชฅเซ€, เชœเซ‹ เช†เชชเชฃเซ‡ เชธเชฐเซเชตเชฐ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ (เชฌเซ‡เช•เชเชจเซเชกเชฎเชพเช‚ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซเช‚ เชตเชฟเชคเชฐเชฃ) เชตเชฟเชถเซ‡เชจเชพ เช…เชจเซเชฎเชพเชจเซ‹เชจเซ‡ เชฏเชพเชฆ เชฐเชพเช–เซ€เช, เชคเซ‹ เชคเซ‡เชจเชพ เชฌเชฆเชฒเซ‡ เชเช• เชฆเซเชƒเช–เชฆ เชฌเชพเชฌเชค เช…เชจเซเชธเชฐเซ‡ เช›เซ‡ - TCP เชฎเชพเช‚ เชคเชฎเชพเชฎ เชกเชฟเชฒเชฟเชตเชฐเซ€ เช—เซ‡เชฐเช‚เชŸเซ€ เชนเซ‹เชตเชพ เช›เชคเชพเช‚ (เช•เชพเช‚ เชคเซ‹ เชกเซ‡เชŸเชพ เชตเชฟเชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชฅเชตเชพ เชคเชฎเชจเซ‡ เชตเชฟเชฐเชพเชฎ เชตเชฟเชถเซ‡ เชœเชพเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡, เชชเชฐเช‚เชคเซ เชœเซเชฏเชพเช‚ เชธเซเชงเซ€ เชธเชฎเชธเซเชฏเชพ เชจ เช†เชตเซ‡ เชคเซเชฏเชพเช‚ เชธเซเชงเซ€ เชกเซ‡เชŸเชพ เชตเชฟเชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡), เชคเซ‡ เชชเซเชทเซเชŸเชฟ เชเชฎเชŸเซ€เชชเซเชฐเซ‹เชŸเซ‹เชฎเชพเช‚ เชœ - เช•เซ‹เชˆ เช—เซ‡เชฐเช‚เชŸเซ€ เชจเชฅเซ€. เชธเชฐเซเชตเชฐ เชคเชฎเชพเชฐเซ‹ เชธเช‚เชฆเซ‡เชถ เชธเชฐเชณเชคเชพเชฅเซ€ เช—เซเชฎเชพเชตเซ€ เชถเช•เซ‡ เช›เซ‡ เช…เชฅเชตเชพ เชซเซ‡เช‚เช•เซ€ เชถเช•เซ‡ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เช•เช‚เชˆ เช•เชฐเซ€ เชถเช•เชพเชคเซเช‚ เชจเชฅเซ€, เชซเช•เซเชค เชตเชฟเชตเชฟเชง เชชเซเชฐเช•เชพเชฐเชจเซ€ เช•เซเชฐเซ‰เชšเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹.

เช…เชจเซ‡ เชธเซŒ เชชเซเชฐเชฅเชฎ - เชธเช‚เชฆเซ‡เชถ เช•เชคเชพเชฐ. เช เซ€เช• เช›เซ‡, เชเช• เชตเชธเซเชคเซ เชธเชพเชฅเซ‡ เชฌเชงเซเช‚ เชถเชฐเซ‚เช†เชคเชฅเซ€ เชœ เชธเซเชชเชทเซเชŸ เชนเชคเซเช‚ - เชเช• เช…เชชเซเชฐเชฎเชพเชฃเชฟเชค เชธเช‚เชฆเซ‡เชถ เชธเช‚เช—เซเชฐเชนเชฟเชค เช…เชจเซ‡ เช—เซเชธเซเชธเซ‹ เชนเซ‹เชตเซ‹ เชœเซ‹เชˆเช. เช…เชจเซ‡ เช•เซ‡เชŸเชฒเชพ เชธเชฎเชฏ เชชเช›เซ€? เช…เชจเซ‡ เชœเซ‡เชธเซเชŸเชฐ เชคเซ‡เชจเซ‡ เช“เชณเช–เซ‡ เช›เซ‡. เช•เชฆเชพเชš เชคเซ‡ เชตเซเชฏเชธเชจเซ€ เชธเซ‡เชตเชพ เชธเช‚เชฆเซ‡เชถเชพเช“ เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เช† เชธเชฎเชธเซเชฏเชพเชจเซ‡ เช•เซเชฐเซ‰เชš เชตเชกเซ‡ เชนเชฒ เช•เชฐเซ‡ เช›เซ‡, เช•เชนเซ‹ เช•เซ‡, เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชกเซ‡เชธเซเช•เชŸเซ‹เชชเชฎเชพเช‚ เชคเซ‡เชฎเชจเซ‡ เช…เชจเซเชฐเซ‚เชช เชฒเช—เชญเช— 4 เช•เชคเชพเชฐ เช›เซ‡ (เช•เชฆเชพเชš เชตเชงเซ, เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซเชฏเซ‹ เช›เซ‡ เชคเซ‡เชฎ, เช† เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเชพ เช•เซ‹เชก เช…เชจเซ‡ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐเชจเซ‡ เชตเชงเซ เช—เช‚เชญเซ€เชฐเชคเชพเชฅเซ€ เชถเซ‹เชงเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡; เชคเซ‡ เชœ เชธเชฎเชฏเซ‡ เชธเชฎเชฏ, เช…เชฎเซ‡ เชœเชพเชฃเซ€เช เช›เซ€เช เช•เซ‡ เชคเซ‡ เชจเชฎเซ‚เชจเชพ เชคเชฐเซ€เช•เซ‡ เชฒเชˆ เชถเช•เชพเชคเซเช‚ เชจเชฅเซ€; MTProto เชฏเซ‹เชœเชจเชพเชฎเชพเช‚เชฅเซ€ เชšเซ‹เช•เซเช•เชธ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เชชเซเชฐเช•เชพเชฐเซ‹เชจเซ‹ เชคเซ‡เชฎเชพเช‚ เช‰เชชเชฏเซ‹เช— เชฅเชคเซ‹ เชจเชฅเซ€).

เช†เชตเซเช‚ เช•เซ‡เชฎ เชฅเชˆ เชฐเชนเซเชฏเซเช‚ เช›เซ‡? เชธเช‚เชญเชตเชคเชƒ, เชธเชฐเซเชตเชฐ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซ‹ เช•เซเชฒเชธเซเชŸเชฐเชจเซ€ เช…เช‚เชฆเชฐ เชตเชฟเชถเซเชตเชธเชจเซ€เชฏเชคเชพเชจเซ€ เช–เชพเชคเชฐเซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช…เชธเชฎเชฐเซเชฅ เชนเชคเชพ, เช…เชฅเชตเชพ เช†เช—เชณเชจเชพ เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เชชเชฐ เชฌเชซเชฐเชฟเช‚เช— เชชเชฃ เช•เชฐเซ€ เชถเช•เซเชฏเชพ เชจ เชนเชคเชพ, เช…เชจเซ‡ เช† เชธเชฎเชธเซเชฏเชพ เช•เซเชฒเชพเชฏเช‚เชŸเชจเซ‡ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเซ€ เชนเชคเซ€. เชจเชฟเชฐเชพเชถเชพเชฎเชพเช‚เชฅเซ€, เชตเซ‡เชธเชฟเชฒเซ€เช TCP เชจเชพ เชเชฒเซเช—เซ‹เชฐเชฟเชงเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, เชซเช•เซเชค เชฌเซ‡ เช•เชคเชพเชฐ เชธเชพเชฅเซ‡ เชตเซˆเช•เชฒเซเชชเชฟเช• เชตเชฟเช•เชฒเซเชช เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹ - เชธเชฐเซเชตเชฐ เชชเชฐ RTT เชฎเชพเชชเชตเชพ เช…เชจเซ‡ เชชเซเชทเซเชŸเชฟ เชตเชฟเชจเชพเชจเซ€ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ€ เชธเช‚เช–เซเชฏเชพเชจเชพ เช†เชงเชพเชฐเซ‡ "เชตเชฟเช‚เชกเซ‹" (เชธเช‚เชฆเซ‡เชถเชพเช“เชฎเชพเช‚) เชจเซเช‚ เช•เชฆ เชธเชฎเชพเชฏเซ‹เชœเชฟเชค เช•เชฐเชตเซเช‚. เชเชŸเชฒเซ‡ เช•เซ‡, เชธเชฐเซเชตเชฐเชจเชพ เชฒเซ‹เชกเชจเซเช‚ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช†เชŸเชฒเซเช‚ เชฐเชซ เชนเซเชฏเซเชฐเชฟเชธเซเชŸเชฟเช• เช เช›เซ‡ เช•เซ‡ เช…เชฎเชพเชฐเซ€ เช•เซ‡เชŸเชฒเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชคเซ‡ เชเช• เชœ เชธเชฎเชฏเซ‡ เชšเชพเชตเซ€ เชถเช•เซ‡ เช›เซ‡ เช…เชจเซ‡ เช—เซเชฎเชพเชตเซ€ เชถเช•เชคเซ€ เชจเชฅเซ€.

เชธเชพเชฐเซเช‚, เชเชŸเชฒเซ‡ เช•เซ‡, เชคเชฎเซ‡ เชธเชฎเชœเซ‹ เช›เซ‹, เชฌเชฐเชพเชฌเชฐ เชจเซ‡? เชœเซ‹ เชคเชฎเชพเชฐเซ‡ TCP เชชเชฐ เชšเชพเชฒเชคเชพ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒเชจเซ€ เชŸเซ‹เชš เชชเชฐ TCP เชซเชฐเซ€เชฅเซ€ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเซ‹ เชนเซ‹เชฏ, เชคเซ‹ เช† เช–เซ‚เชฌ เชœ เช–เชฐเชพเชฌ เชฐเซ€เชคเซ‡ เชกเชฟเชเชพเช‡เชจ เช•เชฐเซ‡เชฒ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชธเซ‚เชšเชตเซ‡ เช›เซ‡.

เช“เชน เชนเชพ, เชถเชพ เชฎเชพเชŸเซ‡ เชคเชฎเชจเซ‡ เชเช• เช•เชฐเชคเชพเช‚ เชตเชงเซ เช•เชคเชพเชฐเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เช…เชจเซ‡ เช•เซ‹เชˆเชชเชฃ เชฐเซ€เชคเซ‡ เช‰เชšเซเชš-เชธเซเชคเชฐเชจเซ€ API เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชคเซ€ เชตเซเชฏเช•เซเชคเชฟ เชฎเชพเชŸเซ‡ เช†เชจเซ‹ เช…เชฐเซเชฅ เชถเซเช‚ เช›เซ‡? เชœเซเช“, เชคเชฎเซ‡ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‹ เช›เซ‹, เชคเซ‡เชจเซ‡ เชถเซเชฐเซ‡เชฃเซ€เชฌเชฆเซเชง เช•เชฐเซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ เช˜เชฃเซ€ เชตเชพเชฐ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชคเชฐเชค เชฎเซ‹เช•เชฒเซ€ เชถเช•เชคเชพ เชจเชฅเซ€. เชถเชพ เชฎเชพเชŸเซ‡? เช•เชพเชฐเชฃ เช•เซ‡ เชœเชตเชพเชฌ เชนเชถเซ‡ msg_id, เชœเซ‡ เช•เชพเชฎเชšเชฒเชพเช‰ เช›เซ‡ะฐเชนเซเช‚ เชเช• เชฒเซ‡เชฌเชฒ เช›เซเช‚, เชœเซ‡เชจเซเช‚ เช…เชธเชพเช‡เชจเชฎเซ‡เชจเซเชŸ เชถเช•เซเชฏ เชคเซ‡เชŸเชฒเชพ เชฎเซ‹เชกเซ‡ เชธเซเชงเซ€ เชฎเซ‹เช•เซ‚เชซ เชฐเชพเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ - เชœเซ‹ เชธเชฐเซเชตเชฐ เช…เชฎเชพเชฐเซ€ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชตเชšเซเชšเซ‡เชจเชพ เชธเชฎเชฏเชจเซ€ เชฎเซ‡เชณ เช–เชพเชคเซ€ เชจ เชนเซ‹เชตเชพเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชคเซ‡เชจเซ‡ เชจเช•เชพเชฐเซ‡ เช›เซ‡ (เช…เชฒเชฌเชคเซเชค, เช…เชฎเซ‡ เชตเชฐเซเชคเชฎเชพเชจเชฎเชพเช‚เชฅเซ€ เช…เชฎเชพเชฐเซ‹ เชธเชฎเชฏ เชฌเชฆเชฒเซ€ เชจเชพเช–เซ‡ เชคเซ‡เชตเซ€ เช•เซเชฐเซ‰เชš เชฌเชจเชพเชตเซ€ เชถเช•เซ€เช เช›เซ€เช. เชธเชฐเซเชตเชฐเชจเชพ เชชเซเชฐเชคเชฟเชธเชพเชฆเซ‹เชฎเชพเช‚เชฅเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ‡เชฒ เชกเซ‡เชฒเซเชŸเชพ เช‰เชฎเซ‡เชฐเซ€เชจเซ‡ เชธเชฐเซเชตเชฐเชฎเชพเช‚ - เชธเชคเซเชคเชพเชตเชพเชฐ เช•เซเชฒเชพเชฏเชจเซเชŸ เช† เช•เชฐเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เชฌเชซเชฐเชฟเช‚เช—เชจเซ‡ เช•เชพเชฐเชฃเซ‡ เช…เชถเซเชฆเซเชง เช…เชจเซ‡ เช…เชšเซ‹เช•เซเช•เชธ เช›เซ‡). เชคเซ‡เชฅเซ€, เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชฎเชพเช‚เชฅเซ€ เชธเซเชฅเชพเชจเชฟเช• เชซเช‚เช•เซเชถเชจ เช•เซ‰เชฒ เชธเชพเชฅเซ‡ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‹ เช›เซ‹, เชคเซเชฏเชพเชฐเซ‡ เชธเช‚เชฆเซ‡เชถ เชจเซ€เชšเซ‡เชจเชพ เชคเชฌเช•เซเช•เชพเช“เชฎเชพเช‚เชฅเซ€ เชชเชธเชพเชฐ เชฅเชพเชฏ เช›เซ‡:

  1. เชคเซ‡ เชเช• เช•เชคเชพเชฐเชฎเชพเช‚ เช†เชตเซ‡เชฒเซเช‚ เช›เซ‡ เช…เชจเซ‡ เชเชจเซเช•เซเชฐเชฟเชชเซเชถเชจเชจเซ€ เชฐเชพเชน เชœเซเช เช›เซ‡.
  2. เชจเชฟเชฏเซเช•เซเชค msg_id เช…เชจเซ‡ เชธเช‚เชฆเซ‡เชถ เชฌเซ€เชœเซ€ เช•เชคเชพเชฐเชฎเชพเช‚ เช—เชฏเซ‹ - เชถเช•เซเชฏ เชซเซ‹เชฐเชตเชฐเซเชกเชฟเช‚เช—; เชธเซ‹เช•เซ‡เชŸ เชชเชฐ เชฎเซ‹เช•เชฒเซ‹.
  3. a) เชธเชฐเซเชตเชฐเซ‡ MsgsAck เชจเซ‹ เชœเชตเชพเชฌ เช†เชชเซเชฏเซ‹ - เชธเช‚เชฆเซ‡เชถ เชตเชฟเชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹, เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ "เช…เชจเซเชฏ เช•เชคเชพเชฐ"เชฎเชพเช‚เชฅเซ€ เช•เชพเชขเซ€ เชจเชพเช–เซ€เช เช›เซ€เช.
    b) เช…เชฅเชตเชพ เชคเซ‡เชจเชพเชฅเซ€ เชตเชฟเชชเชฐเชฟเชค, เชคเซ‡เชจเซ‡ เช•เช‚เชˆเช• เช—เชฎเซเชฏเซเช‚ เชจ เชนเชคเซเช‚, เชคเซ‡เชฃเซ‡ เช–เชฐเชพเชฌ เชเชฎเชเชธเชœเซ€เชจเซ‹ เชœเชตเชพเชฌ เช†เชชเซเชฏเซ‹ - "เชฌเซ€เชœเซ€ เช•เชคเชพเชฐ"เชฎเชพเช‚เชฅเซ€ เชซเชฐเซ€เชฅเซ€ เชฎเซ‹เช•เชฒเซ‹
    c) เช•เช‚เชˆ เชœเชพเชฃเซ€ เชถเช•เชพเชฏเซเช‚ เชจเชฅเซ€, เชธเช‚เชฆเซ‡เชถเชจเซ‡ เชฌเซ€เชœเซ€ เช•เชคเชพเชฐเชฎเชพเช‚เชฅเซ€ เชฎเซ‹เช•เชฒเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ - เชชเชฐเช‚เชคเซ เชคเซ‡ เชฌเชฐเชพเชฌเชฐ เช•เซเชฏเชพเชฐเซ‡ เช–เชฌเชฐ เชจเชฅเซ€.
  4. เชธเชฐเซเชตเชฐเซ‡ เช†เช–เชฐเซ‡ เชœเชตเชพเชฌ เช†เชชเซเชฏเซ‹ RpcResult - เชตเชพเชธเซเชคเชตเชฟเช• เชชเซเชฐเชคเชฟเชญเชพเชต (เช…เชฅเชตเชพ เชญเซ‚เชฒ) - เชฎเชพเชคเซเชฐ เชตเชฟเชคเชฐเชฟเชค เชœ เชจเชนเซ€เช‚, เชชเชฃ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชชเชฃ.

เช•เชฆเชพเชš, เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช†เช‚เชถเชฟเช• เชฐเซ€เชคเซ‡ เชธเชฎเชธเซเชฏเชพ เชนเชฒ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. เช† เชคเซเชฏเชพเชฐเซ‡ เชฅเชพเชฏ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ‹ เชธเชฎเซ‚เชน เชเช•เชฎเชพเช‚ เชชเซ‡เช• เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชธเชฐเซเชตเชฐเซ‡ เชคเซ‡ เชฌเชงเชพเชจเซ‡ เชเช• เชธเชพเชฅเซ‡, เชเช•เชฎเชพเช‚ เชชเซเชทเซเชŸเชฟ เชธเชพเชฅเซ‡ เชชเซเชฐเชคเชฟเชธเชพเชฆ เช†เชชเซเชฏเซ‹ เชนเชคเซ‹. msg_id. เชชเชฐเช‚เชคเซ เชคเซ‡ เช† เชชเซ‡เช•เชจเซ‡ เชชเชฃ เชจเช•เชพเชฐเชถเซ‡, เชœเซ‹ เช•เช‚เชˆเช• เช–เซ‹เชŸเซเช‚ เชฅเชฏเซเช‚ เชนเซ‹เชฏ, เชคเซ‹ เชคเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฐเซ€เชคเซ‡.

เช…เชจเซ‡ เช† เชฌเชฟเช‚เชฆเซเช เชฌเชฟเชจ-เชคเช•เชจเซ€เช•เซ€ เชตเชฟเชšเชพเชฐเชฃเชพเช“ เช…เชฎเชฒเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช…เชจเซเชญเชตเชฅเซ€, เช…เชฎเซ‡ เช˜เชฃเชพ เช•เซเชฐเซ‰เชš เชœเซ‹เชฏเชพ เช›เซ‡, เช…เชจเซ‡ เชตเชงเซเชฎเชพเช‚, เช…เชฎเซ‡ เชนเชตเซ‡ เช–เชฐเชพเชฌ เชธเชฒเชพเชน เช…เชจเซ‡ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐเชจเชพ เชตเชงเซ เช‰เชฆเชพเชนเชฐเชฃเซ‹ เชœเซ‹เชถเซเช‚ - เช†เชตเซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“เชฎเชพเช‚, เชถเซเช‚ เชตเชฟเชถเซเชตเชพเชธ เช•เชฐเชตเซ‹ เช…เชจเซ‡ เช†เชตเชพ เชจเชฟเชฐเซเชฃเชฏเซ‹ เชฒเซ‡เชตเชพ เชฏเซ‹เช—เซเชฏ เช›เซ‡? เชชเซเชฐเชถเซเชจ เชฐเซ‡เชŸเชฐเชฟเช•เชฒ เช›เซ‡ (เช…เชฒเชฌเชคเซเชค เชจเชนเซ€เช‚).

เช†เชชเชฃเซ‡ เชถเซเช‚ เชตเชพเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช? เชœเซ‹ "เชธเช‚เชฆเซ‡เชถเชพเช“ เชตเชฟเชถเซ‡ เชกเซเชฐเช— เชธเช‚เชฆเซ‡เชถเชพเช“" เชตเชฟเชทเชฏ เชชเชฐ เชคเชฎเซ‡ เชนเชœเซ€ เชชเชฃ "เชคเชฎเซ‡ เชฎเซ‚เชฐเซเช– เช›เซ‹, เชคเชฎเซ‡ เช…เชฎเชพเชฐเซ€ เชคเซ‡เชœเชธเซเชตเซ€ เชฏเซ‹เชœเชจเชพ เชธเชฎเชœเซ€ เชถเช•เซเชฏเชพ เชจเชฅเซ€!" เชœเซ‡เชตเชพ เชตเชพเช‚เชงเชพเช“ เชธเชพเชฅเซ‡ เช…เชจเซเชฎเชพเชจ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. (เชคเซ‡เชฅเซ€ เชชเชนเซ‡เชฒเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เชฒเช–เซ‹, เชœเซ‡เชฎ เช•เซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฒเซ‹เช•เซ‹เช, เชคเชฐเซเช• เช…เชจเซ‡ เชชเซ‡เช•เซ‡เชŸ เชเช•เซเชธเชšเซ‡เชจเซเชœเชจเชพ เช‰เชฆเชพเชนเชฐเชฃเซ‹ เชธเชพเชฅเซ‡, เชชเช›เซ€ เช†เชชเชฃเซ‡ เชตเชพเชค เช•เชฐเซ€เชถเซเช‚), เชชเช›เซ€ เชธเชฎเชฏ/เชธเชฎเชฏเชธเชฎเชพเชชเซเชคเชฟ เช เชเช•เชฆเชฎ เชตเซเชฏเชตเชนเชพเชฐเซ เช…เชจเซ‡ เชšเซ‹เช•เซเช•เชธ เชชเซเชฐเชถเซเชจ เช›เซ‡, เช…เชนเซ€เช‚ เชฌเชงเซเช‚ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏเชฅเซ€ เชœเชพเชฃเซ€เชคเซเช‚ เช›เซ‡. เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เช…เชฎเชจเซ‡ เชธเชฎเชฏเชธเชฎเชพเชชเซเชคเชฟ เชตเชฟเชถเซ‡ เชถเซเช‚ เช•เชนเซ‡ เช›เซ‡?

เชธเชฐเซเชตเชฐ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ RPC เชชเซเชฐเชคเชฟเชธเชพเชฆเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เซเชฒเชพเชฏเชจเซเชŸ (เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, RPC เช•เซเชตเซ‡เชฐเซ€) เชคเชฐเชซเชฅเซ€ เชธเช‚เชฆเซ‡เชถเชจเซ€ เชชเซเชฐเชพเชชเซเชคเชฟเชจเซ‡ เชธเซเชตเซ€เช•เชพเชฐเซ‡ เช›เซ‡. เชœเซ‹ เชชเซเชฐเชคเชฟเชธเชพเชฆ เช†เชตเชตเชพเชฎเชพเช‚ เชฒเชพเช‚เชฌเซ‹ เชธเชฎเชฏ เชนเซ‹เชฏ, เชคเซ‹ เชธเชฐเซเชตเชฐ เชชเชนเซ‡เชฒเชพ เชฐเชธเซ€เชฆเชจเซ€ เชธเซเชตเซ€เช•เซƒเชคเชฟ เชฎเซ‹เช•เชฒเซ€ เชถเช•เซ‡ เช›เซ‡, เช…เชจเซ‡ เชฅเซ‹เชกเชพ เช…เช‚เชถเซ‡ เชชเช›เซ€, RPC เชชเซเชฐเชคเชฟเชธเชพเชฆ เชชเซ‹เชคเซ‡ เชœ.

เช•เซเชฒเชพเชฏเชจเซเชŸ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชธเชฐเซเชตเชฐ (เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, RPC เชชเซเชฐเชคเชฟเชธเชพเชฆ) เชคเชฐเชซเชฅเซ€ เชธเช‚เชฆเซ‡เชถเชจเซ€ เชชเซเชฐเชพเชชเซเชคเชฟ เชธเซเชตเซ€เช•เชพเชฐเซ‡ เช›เซ‡ เชœเซ‹ เชคเซ‡ เช–เซ‚เชฌ เชฎเซ‹เชกเซเช‚ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เชจ เชฅเชฏเซเช‚ เชนเซ‹เชฏ เชคเซ‹ เช†เช—เชฒเซ€ RPC เช•เซเชตเซ‡เชฐเซ€ เชชเชฐ เชเช• เชธเซเชตเซ€เช•เซƒเชคเชฟ เช‰เชฎเซ‡เชฐเซ€เชจเซ‡ (เชœเซ‹ เชคเซ‡ เชœเชจเชฐเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซ‹, เช•เชนเซ‹, เชฐเชธเซ€เชฆ เชชเช›เซ€ 60-120 เชธเซ‡เช•เชจเซเชกเชฎเชพเช‚). เชธเชฐเซเชตเชฐ เชคเชฐเชซเชฅเซ€ เชธเช‚เชฆเซ‡เชถ). เชœเซ‹ เช•เซ‡, เชœเซ‹ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏ เชธเซเชงเซ€ เชธเชฐเซเชตเชฐ เชชเชฐ เชธเช‚เชฆเซ‡เชถเชพ เชฎเซ‹เช•เชฒเชตเชพเชจเซเช‚ เช•เซ‹เชˆ เช•เชพเชฐเชฃ เชจ เชนเซ‹เชฏ เช…เชฅเชตเชพ เชธเชฐเซเชตเชฐ เชคเชฐเชซเชฅเซ€ เชฎเซ‹เชŸเซ€ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เช…เชธเซเชตเซ€เช•เชพเชฐเซเชฏ เชธเช‚เชฆเซ‡เชถเชพเช“ เชนเซ‹เชฏ (เช•เชนเซ‹ เช•เซ‡, 16 เชฅเซ€ เชตเชงเซ), เชคเซ‹ เช•เซเชฒเชพเชฏเช‚เชŸ เชเช•เชฒเชพ เชธเซเชตเซ€เช•เซƒเชคเชฟ เชชเซเชฐเชธเชพเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡.

... เชนเซเช‚ เชญเชพเชทเชพเช‚เชคเชฐ เช•เชฐเซเช‚ เช›เซเช‚: เช†เชชเชฃเซ‡ เชชเซ‹เชคเซ‡ เชœเชพเชฃเชคเชพ เชจเชฅเซ€ เช•เซ‡ เช†เชชเชฃเชจเซ‡ เชคเซ‡เชจเซ€ เช•เซ‡เชŸเชฒเซ€ เช…เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชœเชฐเซ‚เชฐ เช›เซ‡, เชคเซ‡เชฅเซ€ เชšเชพเชฒเซ‹ เชฎเชพเชจเซ€ เชฒเชˆเช เช•เซ‡ เชคเซ‡เชจเซ‡ เช†เชจเชพ เชœเซ‡เชตเซเช‚ เชฐเชนเซ‡เชตเชพ เชฆเซ‹.

เช…เชจเซ‡ เชชเชฟเช‚เช—เซเชธ เชตเชฟเชถเซ‡:

เชชเชฟเช‚เช— เชธเช‚เชฆเซ‡เชถเชพเช“ (PING/PONG)

ping#7abe77ec ping_id:long = Pong;

เชชเซเชฐเชคเชฟเชธเชพเชฆ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชธเชฎเชพเชจ เช•เชจเซ‡เช•เซเชถเชจ เชชเชฐ เชชเชพเช›เซ‹ เช†เชตเซ‡ เช›เซ‡:

pong#347773c5 msg_id:long ping_id:long = Pong;

เช† เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ‡ เชธเซเชตเซ€เช•เซƒเชคเชฟเช“เชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เชชเซ‰เช‚เช— เชฎเชพเชคเซเชฐ เชชเชฟเช‚เช—เชจเชพ เชชเซเชฐเชคเชฟเชญเชพเชตเชฎเชพเช‚ เชชเซเชฐเชธเชพเชฐเชฟเชค เชฅเชพเชฏ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชชเชฟเช‚เช— เชฌเช‚เชจเซ‡ เชฌเชพเชœเซเชฅเซ€ เชถเชฐเซ‚ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.

เชตเชฟเชฒเช‚เชฌเชฟเชค เช•เชจเซ‡เช•เซเชถเชจ เชฌเช‚เชง + PING

ping_delay_disconnect#f3427b8c ping_id:long disconnect_delay:int = Pong;

เชชเชฟเช‚เช— เชœเซ‡เชตเซเช‚ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡. เชตเชงเซเชฎเชพเช‚, เช† เชชเซเชฐเชพเชชเซเชค เชฅเชฏเชพ เชชเช›เซ€, เชธเชฐเซเชตเชฐ เชเช• เชŸเชพเชˆเชฎเชฐ เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡ เชตเชฐเซเชคเชฎเชพเชจ เช•เชจเซ‡เช•เซเชถเชจ เชกเชฟเชธเซเช•เชจเซ‡เช•เซเชŸ_เชกเซ‡เชฒเซ‡ เชธเซ‡เช•เชจเซเชก เชชเช›เซ€ เชฌเช‚เชง เช•เชฐเชถเซ‡ เชธเชฟเชตเชพเชฏ เช•เซ‡ เชคเซ‡ เชธเชฎเชพเชจ เชชเซเชฐเช•เชพเชฐเชจเซ‹ เชจเชตเซ‹ เชธเช‚เชฆเซ‡เชถ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ‡ เชœเซ‡ เช…เช—เชพเช‰เชจเชพ เชคเชฎเชพเชฎ เชŸเชพเชˆเชฎเชฐเชจเซ‡ เช†เชชเชฎเซ‡เชณเซ‡ เชฐเซ€เชธเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เช•เซเชฒเชพเชฏเช‚เชŸ เชฆเชฐ 60 เชธเซ‡เช•เชจเซเชกเชฎเชพเช‚ เชเช•เชตเชพเชฐ เช† เชชเชฟเช‚เช—เซเชธ เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเซ‡ 75 เชธเซ‡เช•เชจเซเชกเชจเซ€ เชฌเชฐเชพเชฌเชฐ เชกเชฟเชธเซเช•เชจเซ‡เช•เซเชŸ_เชกเซ‡เชฒเซ‡ เชธเซ‡เชŸ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

เชถเซเช‚ เชคเชฎเซ‡ เชชเชพเช—เชฒ เช›เซ‹?! 60 เชธเซ‡เช•เชจเซเชกเชฎเชพเช‚, เชŸเซเชฐเซ‡เชจ เชธเซเชŸเซ‡เชถเชจเชฎเชพเช‚ เชชเซเชฐเชตเซ‡เชถ เช•เชฐเชถเซ‡, เช‰เชคเชฐเชถเซ‡ เช…เชจเซ‡ เชฎเซเชธเชพเชซเชฐเซ‹เชจเซ‡ เช‰เชชเชพเชกเชถเซ‡, เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชŸเชจเชฒเชฎเชพเช‚ เชธเช‚เชชเชฐเซเช• เช—เซเชฎเชพเชตเชถเซ‡. 120 เชธเซ‡เช•เชจเซเชกเชฎเชพเช‚, เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชธเชพเช‚เชญเชณเซ‹ เช›เซ‹, เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชฌเซ€เชœเชพ เชเช• เชชเชฐ เชชเชนเซ‹เช‚เชšเชถเซ‡ เช…เชจเซ‡ เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡ เช•เชจเซ‡เช•เซเชถเชจ เชคเซ‚เชŸเซ€ เชœเชถเซ‡. เช เซ€เช• เช›เซ‡, เชคเซ‡ เชธเซเชชเชทเซเชŸ เช›เซ‡ เช•เซ‡ เชชเช— เช•เซเชฏเชพเช‚เชฅเซ€ เช†เชตเซ‡ เช›เซ‡ - "เชฎเซ‡เช‚ เชเช• เชฐเชฟเช‚เช—เชฟเช‚เช— เชธเชพเช‚เชญเชณเซเชฏเซเช‚, เชชเชฐเช‚เชคเซ เชคเซ‡ เช•เซเชฏเชพเช‚ เช›เซ‡ เชคเซ‡ เช–เชฌเชฐ เชจเชฅเซ€", เชคเซเชฏเชพเช‚ เชจเชพเช—เชฒเชจเซเช‚ เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎ เช…เชจเซ‡ TCP_NODELAY เชตเชฟเช•เชฒเซเชช เช›เซ‡, เชœเซ‡ เช‡เชจเซเชŸเชฐเซ‡เช•เซเชŸเชฟเชต เช•เชพเชฐเซเชฏ เชฎเชพเชŸเซ‡ เชฌเชจเชพเชตเชพเชฏเซ‡เชฒ เช›เซ‡. เชชเชฐเช‚เชคเซ, เชฎเชพเชซ เช•เชฐเชถเซ‹, เชคเซ‡เชจเซ€ เชกเชฟเชซเซ‹เชฒเซเชŸ เชฎเซ‚เชฒเซเชฏ - 200 เชจเซ‡ เชชเช•เชกเซ€ เชฐเชพเช–เซ‹ เชฎเชฟเชฒเซ€เชธเซ‡เช•เชจเซเชก เชœเซ‹ เชคเชฎเซ‡ เช–เชฐเซ‡เช–เชฐ เช•เช‚เชˆเช• เช†เชตเซเช‚ เชœ เชšเชฟเชคเซเชฐเชฟเชค เช•เชฐเชตเชพ เช…เชจเซ‡ เชธเช‚เชญเชตเชฟเชค เชฌเซ‡ เชชเซ‡เช•เซ‡เชŸเซ‹ เชชเชฐ เชธเชพเชšเชตเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹, เชคเซ‹ เชคเซ‡เชจเซ‡ 5 เชธเซ‡เช•เชจเซเชก เชฎเชพเชŸเซ‡ เชฌเช‚เชง เช•เชฐเซ€ เชฆเซ‹, เช…เชฅเชตเชพ "เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชŸเชพเชˆเชช เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เช›เซ‡..." เชธเช‚เชฆเซ‡เชถเชจเซ‹ เชธเชฎเชฏ เชธเชฎเชพเชชเซเชค เชฅเชˆ เช—เชฏเซ‹ เช›เซ‡. เชชเชฐเช‚เชคเซ เชตเชงเซ เชจเชนเซ€เช‚.

เช…เชจเซ‡ เช›เซ‡เชฒเซเชฒเซ‡, เชชเชฟเช‚เช—เซเชธ. เชเชŸเชฒเซ‡ เช•เซ‡, TCP เช•เชจเซ‡เช•เซเชถเชจเชจเซ€ เชœเซ€เชตเช‚เชคเชคเชพ เชคเชชเชพเชธเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡. เชคเซ‡ เชฐเชฎเซเชœเซ€ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฒเช—เชญเช— 10 เชตเชฐเซเชท เชชเชนเซ‡เชฒเชพเช‚ เชฎเซ‡เช‚ เช…เชฎเชพเชฐเชพ เชซเซ‡เช•เชฒเซเชŸเซ€เชจเชพ เชกเซ‹เชฐเซเชฎเชจเชพ เชฎเซ‡เชธเซ‡เชจเซเชœเชฐ เชตเชฟเชถเซ‡ เชเช• เชœเชŸเชฟเชฒ เชฒเช–เชพเชฃ เชฒเช–เซเชฏเซเช‚ เชนเชคเซเช‚ - เชคเซเชฏเชพเช‚เชจเชพ เชฒเซ‡เช–เช•เซ‹เช เช•เซเชฒเชพเชฏเช‚เชŸเชฎเชพเช‚เชฅเซ€ เชธเชฐเซเชตเชฐเชจเซ‡ เชชเชฟเช‚เช— เชชเชฃ เช•เชฐเซเชฏเซเช‚ เชนเชคเซเช‚, เช…เชจเซ‡ เชŠเชฒเชŸเซเช‚ เชจเชนเซ€เช‚. เชชเชฐเช‚เชคเซ เชคเซเชฐเซ€เชœเชพ เชตเชฐเซเชทเชจเชพ เชตเชฟเชฆเซเชฏเชพเชฐเซเชฅเซ€เช“ เชเช• เชตเชธเซเชคเซ เช›เซ‡, เช…เชจเซ‡ เช†เช‚เชคเชฐเชฐเชพเชทเซเชŸเซเชฐเซ€เชฏ เช“เชซเชฟเชธ เชฌเซ€เชœเซ€ เชตเชธเซเชคเซ เช›เซ‡, เชฌเชฐเชพเชฌเชฐ?

เชชเซเชฐเชฅเชฎ, เชฅเซ‹เชกเซ‹ เชถเซˆเช•เซเชทเชฃเชฟเช• เช•เชพเชฐเซเชฏเช•เซเชฐเชฎ. TCP เช•เชจเซ‡เช•เซเชถเชจ, เชชเซ‡เช•เซ‡เชŸ เชเช•เซเชธเชšเซ‡เชจเซเชœเชจเซ€ เช—เซ‡เชฐเชนเชพเชœเชฐเซ€เชฎเชพเช‚, เช…เช เชตเชพเชกเชฟเชฏเชพ เชธเซเชงเซ€ เชœเซ€เชตเซ€ เชถเช•เซ‡ เช›เซ‡. เชนเซ‡เชคเซ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ€เชจเซ‡ เช† เชธเชพเชฐเซเช‚ เช…เชจเซ‡ เช–เชฐเชพเชฌ เชฌเช‚เชจเซ‡ เช›เซ‡. เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชธเชฐเซเชตเชฐ เชชเชฐ SSH เช•เชจเซ‡เช•เซเชถเชจ เช–เซเชฒเซเชฒเซเช‚ เชนเซ‹เชฏ เชคเซ‹ เชธเชพเชฐเซเช‚ เช›เซ‡, เชคเชฎเซ‡ เช•เชฎเซเชชเซเชฏเซเชŸเชฐเชฎเชพเช‚เชฅเซ€ เช‰เชญเชพ เชฅเชฏเชพ, เชฐเชพเช‰เชŸเชฐ เชฐเซ€เชฌเซ‚เชŸ เช•เชฐเซเชฏเซเช‚, เชคเชฎเชพเชฐเชพ เชธเซเชฅเชพเชจเซ‡ เชชเชพเช›เชพ เชซเชฐเซเชฏเชพ - เช† เชธเชฐเซเชตเชฐ เชฆเซเชตเชพเชฐเชพ เชธเชคเซเชฐ เชซเชพเชŸเซเชฏเซเช‚ เชจ เชนเชคเซเช‚ (เชคเชฎเซ‡ เช•เช‚เชˆเชชเชฃ เชŸเชพเช‡เชช เช•เชฐเซเชฏเซเช‚ เชจ เชนเชคเซเช‚, เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชชเซ‡เช•เซ‡เชŸ เชจเชนเซ‹เชคเชพ) , เชคเซ‡ เช…เชจเซเช•เซ‚เชณ เช›เซ‡. เชœเซ‹ เชธเชฐเซเชตเชฐ เชชเชฐ เชนเชœเชพเชฐเซ‹ เช•เซเชฒเชพเชฏเช‚เชŸ เชนเซ‹เชฏ เชคเซ‹ เชคเซ‡ เช–เชฐเชพเชฌ เช›เซ‡, เชฆเชฐเซ‡เช• เชธเช‚เชธเชพเชงเชจเซ‹ เชฒเซ‡ เช›เซ‡ (เชนเซ‡เชฒเซ‹, เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ!), เช…เชจเซ‡ เช•เซเชฒเชพเชฏเช‚เชŸเชจเชพ เชนเซ‹เชธเซเชŸ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏ เชชเชนเซ‡เชฒเชพ เชฐเซ€เชฌเซ‚เชŸ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ - เชชเชฐเช‚เชคเซ เช…เชฎเชจเซ‡ เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชœเชพเชฃ เชฅเชถเซ‡ เชจเชนเซ€เช‚.

เชšเซ‡เชŸ/IM เชธเชฟเชธเซเชŸเชฎเซ‹ เชเช• เชตเชงเชพเชฐเชพเชจเชพ เช•เชพเชฐเชฃ เชฎเชพเชŸเซ‡ เชฌเซ€เชœเชพ เช•เซ‡เชธเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ - เช‘เชจเชฒเชพเช‡เชจ เชธเซเชฅเชฟเชคเชฟเช“. เชœเซ‹ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ "เชชเชกเซเชฏเซ‹", เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเชพ เช‡เชจเซเชŸเชฐเชฒเซ‹เช•เซเชฏเซเชŸเชฐเซเชธเชจเซ‡ เช† เชตเชฟเชถเซ‡ เชœเชพเชฃ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชจเชนเชฟเช‚เชคเชฐ, เชคเชฎเซ‡ เชเช• เชญเซ‚เชฒ เชธเชพเชฅเซ‡ เชธเชฎเชพเชชเซเชค เชฅเชถเซ‹ เชœเซ‡ เชœเชฌเซเชฌเชฐเชจเชพ เชจเชฟเชฐเซเชฎเชพเชคเชพเช“เช (เช…เชจเซ‡ 20 เชตเชฐเซเชทเชฅเซ€ เชธเซเชงเชพเชฐเซ‡เชฒ) - เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช เชกเชฟเชธเซเช•เชจเซ‡เช•เซเชŸ เช•เชฐเซเชฏเซเช‚ เช›เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡เช“ เชคเซ‡เชจเซ‡ เช‘เชจเชฒเชพเช‡เชจ เช›เซ‡ เชเชฎ เชฎเชพเชจเซ€เชจเซ‡ เชคเซ‡เชจเซ‡ เชธเช‚เชฆเซ‡เชถเชพ เชฒเช–เชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เซ‡ เช›เซ‡ (เชœเซ‡ เช†เชฎเชพเช‚ เชชเชฃ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เช–เซ‹เชตเชพเชˆ เช—เชฏเชพ เชนเชคเชพ. เชกเชฟเชธเซเช•เชจเซ‡เช•เซเชŸ เชถเซ‹เชงเซเชฏเซเช‚ เชคเซ‡เชจเซ€ เชฅเซ‹เชกเซ€ เชฎเชฟเชจเชฟเชŸเซ‹ เชชเชนเซ‡เชฒเชพเช‚). เชจเชพ, TCP_KEEPALIVE เชตเชฟเช•เชฒเซเชช, เชœเซ‡ เช˜เชฃเชพ เชฒเซ‹เช•เซ‹ เชธเชฎเชœเซ€ เชถเช•เชคเชพ เชจเชฅเซ€ เช•เซ‡ TCP เชŸเชพเชˆเชฎเชฐ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เช…เชตเซเชฏเชตเชธเซเชฅเชฟเชค เชฐเซ€เชคเซ‡ เชซเซ‡เช‚เช•เซ€ เชฆเซ‡ เช›เซ‡ (เชฆเชธ เชธเซ‡เช•เชจเซเชก เชœเซ‡เชตเชพ เชœเช‚เช—เชฒเซ€ เชฎเซ‚เชฒเซเชฏเซ‹ เชธเซ‡เชŸ เช•เชฐเซ€เชจเซ‡), เช…เชนเซ€เช‚ เชฎเชฆเชฆ เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚ - เชคเชฎเชพเชฐเซ‡ เช–เชพเชคเชฐเซ€ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช•เซ‡ เชฎเชพเชคเซเชฐ OS เช•เชฐเซเชจเชฒ เชœ เชจเชนเซ€เช‚. เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซเช‚ เชฎเชถเซ€เชจ เชœเซ€เชตเช‚เชค เช›เซ‡, เชชเชฃ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡, เชชเซเชฐเชคเชฟเชธเชพเชฆ เช†เชชเชตเชพ เชธเช•เซเชทเชฎ เช›เซ‡, เช…เชจเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเซ‹เชคเซ‡ (เชถเซเช‚ เชคเชฎเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชธเซเชฅเชฟเชฐ เชฅเชˆ เชถเช•เชคเซเช‚ เชจเชฅเซ€? เช‰เชฌเซเชจเซเชŸเซ 18.04 เชชเชฐ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชกเซ‡เชธเซเช•เชŸเซ‹เชช เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชเช• เช•เชฐเชคเชพ เชตเชงเซ เชตเช–เชค เชธเซเชฅเชฟเชฐ เชฅเชˆ เช—เชฏเซเช‚ เช›เซ‡).

เชคเซ‡เชฅเซ€ เชœ เชคเชฎเชพเชฐเซ‡ เชชเชฟเช‚เช— เช•เชฐเชตเซเช‚ เชชเชกเชถเซ‡ เชธเชฐเซเชตเชฐ เช•เซเชฒเชพเชฏเช‚เชŸ, เช…เชจเซ‡ เชŠเชฒเชŸเซเช‚ เชจเชนเซ€เช‚ - เชœเซ‹ เช•เซเชฒเชพเชฏเช‚เชŸ เช† เช•เชฐเซ‡ เช›เซ‡, เชœเซ‹ เช•เชจเซ‡เช•เซเชถเชจ เชคเซ‚เชŸเซ€ เช—เชฏเซเช‚ เชนเซ‹เชฏ, เชคเซ‹ เชชเชฟเช‚เช— เชตเชฟเชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ เชจเชนเซ€เช‚, เชงเซเชฏเซ‡เชฏ เชชเซเชฐเชพเชชเซเชค เชฅเชถเซ‡ เชจเชนเซ€เช‚.

เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เชชเชฐ เช†เชชเชฃเซ‡ เชถเซเช‚ เชœเซ‹เชˆเช เช›เซ€เช? เชคเซ‡ เชฌเชฐเชพเชฌเชฐ เชตเชฟเชฐเซเชฆเซเชง เช›เซ‡! เชธเชพเชฐเซเช‚, เชคเซ‡ เช›เซ‡. เช”เชชเชšเชพเชฐเชฟเช• เชฐเซ€เชคเซ‡, เช…เชฒเชฌเชคเซเชค, เชฌเช‚เชจเซ‡ เชชเช•เซเชทเซ‹ เชเช•เชฌเซ€เชœเชพเชจเซ‡ เชชเชฟเช‚เช— เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚, เช—เซเชฐเชพเชนเช•เซ‹ เช•เซเชฐเซ‰เชšเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ ping_delay_disconnect, เชœเซ‡ เชธเชฐเซเชตเชฐ เชชเชฐ เชŸเชพเชˆเชฎเชฐ เชธเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡. เช เซ€เช• เช›เซ‡, เชฎเชพเชซ เช•เชฐเชถเซ‹, เชคเซ‡ เช•เซเชฒเชพเชฏเช‚เชŸ เชชเชฐ เชจเชฟเชฐเซเชญเชฐ เชจเชฅเซ€ เช•เซ‡ เชคเซ‡ เชชเชฟเช‚เช— เชตเชฟเชจเชพ เช•เซ‡เชŸเชฒเซ‹ เชธเชฎเชฏ เชคเซเชฏเชพเช‚ เชฐเชนเซ‡เชตเชพ เชฎเชพเช‚เช—เซ‡ เช›เซ‡. เชธเชฐเซเชตเชฐ, เชคเซ‡เชจเชพ เชฒเซ‹เชกเชจเชพ เช†เชงเชพเชฐเซ‡, เชตเชงเซ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชœเชพเชฃเซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ, เช…เชฒเชฌเชคเซเชค, เชœเซ‹ เชคเชฎเชจเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ‹ เชตเชพเช‚เชงเซ‹ เชจ เชนเซ‹เชฏ, เชคเซ‹ เชชเช›เซ€ เชคเชฎเซ‡ เชคเชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ เชฆเซเชทเซเชŸ เชชเชฟเชจเซ‹เชšเชฟเช“ เชฌเชจเชถเซ‹, เช…เชจเซ‡ เชเช• เช•เซเชฐเซ‰เชš เช•เชฐเชถเซ‡ ...

เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชกเชฟเชเชพเช‡เชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช?

เชนเซเช‚ เชฎเชพเชจเซเช‚ เช›เซเช‚ เช•เซ‡ เช‰เชชเชฐเซ‹เช•เซเชค เชคเชฅเซเชฏเซ‹ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เชธเซ‚เชšเชตเซ‡ เช›เซ‡ เช•เซ‡ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ/เชตเซ€เช•เซ‹เชจเซเชŸเชพเช•เซเชŸเซ‡ เชŸเซ€เชฎ เช•เซ‹เชฎเซเชชเซเชฏเซเชŸเชฐ เชจเซ‡เชŸเชตเชฐเซเช•เชจเชพ เชชเชฐเชฟเชตเชนเชจ (เช…เชจเซ‡ เชจเซ€เชšเชฒเชพ) เชธเซเชคเชฐ เช…เชจเซ‡ เชธเช‚เชฌเช‚เชงเชฟเชค เชฌเชพเชฌเชคเซ‹เชฎเชพเช‚ เชคเซ‡เชฎเชจเซ€ เช“เช›เซ€ เชฒเชพเชฏเช•เชพเชคเชจเชพ เช•เซเชทเซ‡เชคเซเชฐเชฎเชพเช‚ เช–เซ‚เชฌ เชธเช•เซเชทเชฎ เชจเชฅเซ€.

เชคเซ‡ เช†เชŸเชฒเซเช‚ เชœเชŸเชฟเชฒ เช•เซ‡เชฎ เชฌเชจเซเชฏเซเช‚, เช…เชจเซ‡ เชŸเซ‡เชฒเชฟเช—เซเชฐเชพเชฎ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชŸเซเชธ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเชพเช‚เชงเซ‹ เช‰เช เชพเชตเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€ เชถเช•เซ‡? เชนเช•เซ€เช•เชค เช เช›เซ‡ เช•เซ‡ เชคเซ‡เช“เช เชเช• เชธเชคเซเชฐ เชฌเชจเชพเชตเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹ เชœเซ‡ TCP เช•เชจเซ‡เช•เซเชถเชจ เชตเชฟเชฐเชพเชฎเชฅเซ€ เชฌเชšเซ€ เชœเชพเชฏ, เชเชŸเชฒเซ‡ เช•เซ‡, เชœเซ‡ เชนเชฎเชฃเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชจเชฅเซ€, เช…เชฎเซ‡ เชชเช›เซ€เชฅเซ€ เชตเชฟเชคเชฐเชฟเชค เช•เชฐเซ€เชถเซเช‚. เชคเซ‡เช“เช เช•เชฆเชพเชš UDP เชŸเซเชฐเชพเชจเซเชธเชชเซ‹เชฐเซเชŸ เชฌเชจเชพเชตเชตเชพเชจเซ‹ เชชเชฃ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹ เชนเชคเซ‹, เชชเชฐเช‚เชคเซ เชคเซ‡เช“เชจเซ‡ เชฎเซเชถเซเช•เซ‡เชฒเซ€เช“เชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเชตเซ‹ เชชเชกเซเชฏเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เช›เซ‹เชกเซ€ เชฆเซ€เชงเซ‹ (เชคเซ‡เชฅเซ€ เชœ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เช–เชพเชฒเซ€ เช›เซ‡ - เชคเซ‡เชฎเชพเช‚ เชฌเชกเชพเชˆ เชฎเชพเชฐเชตเชพ เชœเซ‡เชตเซเช‚ เช•เช‚เชˆ เชจเชฅเซ€). เชชเชฐเช‚เชคเซ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชจเซ‡เชŸเชตเชฐเซเช•เซเชธ เช…เชจเซ‡ เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ TCP เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡, เชคเชฎเซ‡ เชคเซ‡เชจเชพ เชชเชฐ เช•เซเชฏเชพเช‚ เช†เชงเชพเชฐ เชฐเชพเช–เซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชคเชฎเชพเชฐเซ‡ เชคเซ‡ เชœเชพเชคเซ‡ เช•เชฐเชตเชพเชจเซ€ เช•เซเชฏเชพเช‚ เชœเชฐเซ‚เชฐ เช›เซ‡ (เช…เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡) เชคเซ‡เชจเซ€ เชธเชฎเชœเชจเชพ เช…เชญเชพเชตเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เช…เชจเซ‡ เช†เชจเซ‡ เชธเช‚เช•เซ‡เชคเชฒเชฟเชชเซ€ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ โ€œเชฌเซ‡ เชชเช•เซเชทเซ€เช“ เชธเชพเชฅเซ‡. เชเช• เชชเชฅเซเชฅเชฐ", เช† เชชเชฐเชฟเชฃเชพเชฎ เช›เซ‡.

เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชœเชฐเซ‚เชฐเซ€ เชนเชคเซเช‚? เชคเซ‡ เชนเช•เซ€เช•เชคเชจเชพ เช†เชงเชพเชฐเซ‡ msg_id เชฐเซ€เชชเซเชฒเซ‡ เชนเซเชฎเชฒเชพเช“เชจเซ‡ เชฐเซ‹เช•เชตเชพ เชฎเชพเชŸเซ‡ เช•เซเชฐเชฟเชชเซเชŸเซ‹เช—เซเชฐเชพเชซเชฟเช• เชฆเซƒเชทเซเชŸเชฟเช•เซ‹เชฃเชฅเซ€ เชœเชฐเซ‚เชฐเซ€ เชŸเชพเช‡เชฎเชธเซเชŸเซ‡เชฎเซเชช เช›เซ‡, เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เช…เชจเชจเซเชฏ เช“เชณเช–เช•เชฐเซเชคเชพ เช•เชพเชฐเซเชฏ เชœเซ‹เชกเชตเซเช‚ เช เชญเซ‚เชฒ เช›เซ‡. เชคเซ‡เชฅเซ€, เชตเชฐเซเชคเชฎเชพเชจ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐเชจเซ‡ เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชฌเชฆเชฒเซเชฏเชพ เชตเชฟเชจเชพ (เชœเซเชฏเชพเชฐเซ‡ เช…เชชเชกเซ‡เชŸเซเชธ เชธเซเชŸเซเชฐเซ€เชฎ เชœเชจเชฐเซ‡เชŸ เชฅเชพเชฏ เช›เซ‡, เชคเซ‡ เชชเซ‹เชธเซเชŸเซเชธเชจเซ€ เช† เชถเซเชฐเซ‡เชฃเซ€เชจเชพ เชฌเซ€เชœเชพ เชญเชพเช— เชฎเชพเชŸเซ‡ เช‰เชšเซเชš-เชธเซเชคเชฐเชจเซ‹ API เชตเชฟเชทเชฏ เช›เซ‡), เชคเชฎเชพเชฐเซ‡ เช†เชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡:

  1. เช•เซเชฒเชพเชฏเชจเซเชŸ เชธเชพเชฅเซ‡ TCP เช•เชจเซ‡เช•เซเชถเชจ เชงเชฐเชพเชตเชคเซเช‚ เชธเชฐเซเชตเชฐ เชœเชตเชพเชฌเชฆเชพเชฐเซ€ เชฒเซ‡ เช›เซ‡ - เชœเซ‹ เชคเซ‡เชฃเซ‡ เชธเซ‹เช•เซ‡เชŸเชฎเชพเช‚เชฅเซ€ เชตเชพเช‚เชšเซเชฏเซเช‚ เชนเซ‹เชฏ, เชคเซ‹ เช•เซƒเชชเชพ เช•เชฐเซ€เชจเซ‡ เชธเซเชตเซ€เช•เชพเชฐเซ‹, เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเซ‹ เช…เชฅเชตเชพ เชญเซ‚เชฒ เชชเชฐเชค เช•เชฐเซ‹, เช•เซ‹เชˆ เชจเซเช•เชธเชพเชจ เชจเชนเซ€เช‚. เชชเช›เซ€ เชชเซเชทเซเชŸเชฟเช•เชฐเชฃ เช id เชจเซเช‚ เชตเซ‡เช•เซเชŸเชฐ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชซเช•เซเชค "เช›เซ‡เชฒเซเชฒเซ€ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซ‡เชฒ seq_no" - เชฎเชพเชคเซเชฐ เชเช• เชธเช‚เช–เซเชฏเชพ, เชœเซ‡เชฎ เช•เซ‡ TCP (เชฌเซ‡ เชจเช‚เชฌเชฐเซ‹ - เชคเชฎเชพเชฐเซ‹ seq เช…เชจเซ‡ เชชเซเชทเซเชŸเชฟ เชฅเชฏเซ‡เชฒ เชเช•). เช†เชชเชฃเซ‡ เชนเช‚เชฎเซ‡เชถเชพ เชธเชคเซเชฐเชฎเชพเช‚ เชœ เชนเซ‹เชˆเช เช›เซ€เช, เช–เชฐเซเช‚ เชจเซ‡?
  2. เชฐเชฟเชชเซเชฒเซ‡ เชนเซเชฎเชฒเชพเช“เชจเซ‡ เชฐเซ‹เช•เชตเชพ เชฎเชพเชŸเซ‡เชจเซ‹ เชŸเชพเช‡เชฎเชธเซเชŸเซ‡เชฎเซเชช เชเช• เช…เชฒเช— เช•เซเชทเซ‡เชคเซเชฐ เชฌเชจเซ€ เชœเชพเชฏ เช›เซ‡, เชเช• เชฒเชพ เชจเซ‹เชจเซเชธ. เชคเซ‡ เชšเช•เชพเชธเชพเชฏเซ‡เชฒ เช›เซ‡, เชชเชฐเช‚เชคเซ เช…เชจเซเชฏ เช•เช‚เชˆเชชเชฃ เช…เชธเชฐ เช•เชฐเชคเซเช‚ เชจเชฅเซ€. เชชเซ‚เชฐเชคเซเช‚ เช…เชจเซ‡ uint32 - เชœเซ‹ เช†เชชเชฃเซเช‚ เชฎเซ€เช เซเช‚ เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚ เชฆเชฐ เช…เชกเชงเชพ เชฆเชฟเชตเชธเชฎเชพเช‚ เชฌเชฆเชฒเชพเชฏ เช›เซ‡, เชคเซ‹ เช†เชชเชฃเซ‡ เชตเชฐเซเชคเชฎเชพเชจ เชธเชฎเชฏเชจเชพ เชชเซ‚เชฐเซเชฃเชพเช‚เช• เชญเชพเช—เชจเชพ เชฒเซ‹-เช“เชฐเซเชกเชฐ เชฌเชฟเชŸเซเชธเชจเซ‡ 16 เชฌเชฟเชŸเซเชธ เชซเชพเชณเชตเซ€ เชถเช•เซ€เช เช›เซ€เช, เชฌเชพเช•เซ€เชจเชพ - เชธเซ‡เช•เชจเซเชกเชจเชพ เช…เชชเซ‚เชฐเซเชฃเชพเช‚เช• เชญเชพเช—เชฎเชพเช‚ (เชนเชตเซ‡เชจเซ€ เชœเซ‡เชฎ).
  3. เชฆเซ‚เชฐ msg_id เชฌเชฟเชฒเช•เซเชฒ - เชฌเซ‡เช•เชเชจเซเชกเซเชธ เชชเชฐ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ‡ เช…เชฒเช— เชชเชพเชกเชตเชพเชจเชพ เชฆเซƒเชทเซเชŸเชฟเช•เซ‹เชฃเชฅเซ€, เชคเซเชฏเชพเช‚, เชชเซเชฐเชฅเชฎ, เช•เซเชฒเชพเชฏเช‚เชŸ เช†เชˆเชกเซ€ เช…เชจเซ‡ เชฌเซ€เชœเซเช‚, เชธเชคเซเชฐ เช†เชˆเชกเซ€, เชคเซ‡เชฎเชจเซ‡ เชœเซ‹เชกเซ‡ เช›เซ‡. เชคเชฆเชจเซเชธเชพเชฐ, เชตเชฟเชจเช‚เชคเซ€ เช“เชณเช–เช•เชฐเซเชคเชพ เชคเชฐเซ€เช•เซ‡ เชฎเชพเชคเซเชฐ เชเช• เชœ เชตเชธเซเชคเซ เชชเซ‚เชฐเชคเซ€ เช›เซ‡ seq_no.

เช† เชธเซŒเชฅเซ€ เชธเชซเชณ เชตเชฟเช•เชฒเซเชช เชชเชฃ เชจเชฅเซ€; เชเช• เชธเช‚เชชเซ‚เชฐเซเชฃ เชฐเซ‡เชจเซเชกเชฎ เช“เชณเช–เช•เชฐเซเชคเชพ เชคเชฐเซ€เช•เซ‡ เชธเซ‡เชตเชพ เช†เชชเซ€ เชถเช•เซ‡ เช›เซ‡ - เชฎเชพเชฐเซเช— เชฆเซเชตเชพเชฐเชพ, เชธเช‚เชฆเซ‡เชถ เชฎเซ‹เช•เชฒเชคเซ€ เชตเช–เชคเซ‡ เช† เช‰เชšเซเชš เชธเซเชคเชฐเซ€เชฏ API เชฎเชพเช‚ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐเชจเซ‡ เชฐเชฟเชฒเซ‡เชŸเชฟเชตเชฅเซ€ เชเชฌเซเชธเซ‹เชฒเซเชฏเซเชŸเชฎเชพเช‚ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชฐเซ€เชฎเซ‡เช• เช•เชฐเชตเซเช‚ เชตเชงเซ เชธเชพเชฐเซเช‚ เชฐเชนเซ‡เชถเซ‡, เชชเชฐเช‚เชคเซ เช† เชฌเซ€เชœเชพ เชญเชพเช— เชฎเชพเชŸเซ‡เชจเซ‹ เชตเชฟเชทเชฏ เช›เซ‡, เช† เชชเซ‹เชธเซเชŸเชจเซ‹ เชจเชนเซ€เช‚.

API?

เชคเชพ-เชฆเชพเชฎ! เชคเซ‡เชฅเซ€, เชชเซ€เชกเชพ เช…เชจเซ‡ เช•เซเชฐเซ‡เชšเซ‡เชธเชฅเซ€ เชญเชฐเซ‡เชฒเชพ เชฎเชพเชฐเซเช—เชฎเชพเช‚เชฅเซ€ เชธเช‚เช˜เชฐเซเชท เช•เชฐเซเชฏเชพ เชชเช›เซ€, เช…เชฎเซ‡ เช†เช–เชฐเซ‡ เชธเชฐเซเชตเชฐเชจเซ‡ เช•เซ‹เชˆเชชเชฃ เชตเชฟเชจเช‚เชคเซ€เช“ เชฎเซ‹เช•เชฒเซ€ เชถเช•เซเชฏเชพ เช…เชจเซ‡ เชคเซ‡เชจเชพ เช•เซ‹เชˆเชชเชฃ เชœเชตเชพเชฌเซ‹ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ€ เชถเช•เซเชฏเชพ, เชคเซ‡เชฎเชœ เชธเชฐเซเชตเชฐ เชคเชฐเชซเชฅเซ€ เช…เชชเชกเซ‡เชŸเซเชธ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ€ เชถเช•เซเชฏเชพ (เชตเชฟเชจเช‚เชคเชฟเชจเชพ เชœเชตเชพเชฌเชฎเชพเช‚ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เชคเซ‡ เชชเซ‹เชคเซ‡ เชœ. เช…เชฎเชจเซ‡ เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ PUSH, เชœเซ‹ เช•เซ‹เชˆ เชคเซ‡ เชฐเซ€เชคเซ‡ เชธเซเชชเชทเซเชŸ เชนเซ‹เชฏ เชคเซ‹).

เชงเซเชฏเชพเชจ เช†เชชเซ‹, เชนเชตเซ‡ เชฒเซ‡เช–เชฎเชพเช‚ เชชเชฐเซเชฒเชจเซเช‚ เชเช•เชฎเชพเชคเซเชฐ เช‰เชฆเชพเชนเชฐเชฃ เชนเชถเซ‡! (เชœเซ‡เช“ เชตเชพเช•เซเชฏเชฐเชšเชจเชพเชฅเซ€ เชชเชฐเชฟเชšเชฟเชค เชจเชฅเซ€ เชคเซ‡เชฎเชจเชพ เชฎเชพเชŸเซ‡, เช†เชถเซ€เชฐเซเชตเชพเชฆเชจเซ€ เชชเซเชฐเชฅเชฎ เชฆเชฒเซ€เชฒ เช เช‘เชฌเซเชœเซ‡เช•เซเชŸเชจเซเช‚ เชกเซ‡เชŸเชพ เชฎเชพเชณเช–เซเช‚ เช›เซ‡, เชฌเซ€เชœเซ‹ เชคเซ‡เชจเซ‹ เชตเชฐเซเช— เช›เซ‡):

2019.10.24 12:00:51 $1 = {
'cb' => 'TeleUpd::__ANON__',
'out' => bless( {
'filter' => bless( {}, 'Telegram::ChannelMessagesFilterEmpty' ),
'channel' => bless( {
'access_hash' => '-6698103710539760874',
'channel_id' => '1380524958'
}, 'Telegram::InputPeerChannel' ),
'pts' => '158503',
'flags' => 0,
'limit' => 0
}, 'Telegram::Updates::GetChannelDifference' ),
'req_id' => '6751291954012037292'
};
2019.10.24 12:00:51 $1 = {
'in' => bless( {
'req_msg_id' => '6751291954012037292',
'result' => bless( {
'pts' => 158508,
'flags' => 3,
'final' => 1,
'new_messages' => [],
'users' => [],
'chats' => [
bless( {
'title' => 'ะฅัƒะปะธะฝะพะผะธะบะฐ',
'username' => 'hoolinomics',
'flags' => 8288,
'id' => 1380524958,
'access_hash' => '-6698103710539760874',
'broadcast' => 1,
'version' => 0,
'photo' => bless( {
'photo_small' => bless( {
'volume_id' => 246933270,
'file_reference' => '
'secret' => '1854156056801727328',
'local_id' => 228648,
'dc_id' => 2
}, 'Telegram::FileLocation' ),
'photo_big' => bless( {
'dc_id' => 2,
'local_id' => 228650,
'file_reference' => '
'secret' => '1275570353387113110',
'volume_id' => 246933270
}, 'Telegram::FileLocation' )
}, 'Telegram::ChatPhoto' ),
'date' => 1531221081
}, 'Telegram::Channel' )
],
'timeout' => 300,
'other_updates' => [
bless( {
'pts_count' => 0,
'message' => bless( {
'post' => 1,
'id' => 852,
'flags' => 50368,
'views' => 8013,
'entities' => [
bless( {
'length' => 20,
'offset' => 0
}, 'Telegram::MessageEntityBold' ),
bless( {
'length' => 18,
'offset' => 480,
'url' => 'https://alexeymarkov.livejournal.com/[url_ะฒั‹ั€ะตะทะฐะฝ].html'
}, 'Telegram::MessageEntityTextUrl' )
],
'reply_markup' => bless( {
'rows' => [
bless( {
'buttons' => [
bless( {
'text' => '???? 165',
'data' => 'send_reaction_0'
}, 'Telegram::KeyboardButtonCallback' ),
bless( {
'data' => 'send_reaction_1',
'text' => '???? 9'
}, 'Telegram::KeyboardButtonCallback' )
]
}, 'Telegram::KeyboardButtonRow' )
]
}, 'Telegram::ReplyInlineMarkup' ),
'message' => 'ะ ะฒะพั‚ ะธ ะฝะพะฒะฐั ะบะฝะธะณะฐ! 
// [ั‚ะตะบัั‚ ัะพะพะฑั‰ะตะฝะธั ะฒั‹ั€ะตะทะฐะฝ ั‡ั‚ะพะฑ ะฝะต ะฝะฐั€ัƒัˆะฐั‚ัŒ ะฟั€ะฐะฒะธะป ะฅะฐะฑั€ะฐ ะพ ั€ะตะบะปะฐะผะต]
ะฝะฐะฟะตั‡ะฐั‚ะฐัŽ.',
'to_id' => bless( {
'channel_id' => 1380524958
}, 'Telegram::PeerChannel' ),
'date' => 1571724559,
'edit_date' => 1571907562
}, 'Telegram::Message' ),
'pts' => 158508
}, 'Telegram::UpdateEditChannelMessage' ),
bless( {
'pts' => 158508,
'message' => bless( {
'edit_date' => 1571907589,
'to_id' => bless( {
'channel_id' => 1380524958
}, 'Telegram::PeerChannel' ),
'date' => 1571807301,
'message' => 'ะŸะพั‡ะตะผัƒ ะ’ั‹ ัั‡ะธั‚ะฐะตั‚ะต Facebook ะฟะปะพั…ะพะน ะบะพะผะฟะฐะฝะธะตะน? ะœะพะถะตั‚ะต ะฟั€ะพะบะพะผะผะตะฝั‚ะธั€ะพะฒะฐั‚ัŒ? ะŸะพ-ะผะพะตะผัƒ, ัั‚ะพ ัˆะธะบะฐั€ะฝะฐั ะบะพะผะฟะฐะฝะธั. ะ‘ะตะท ะดะพะปะณะพะฒ, ั ั…ะพั€ะพัˆะตะน ะฟั€ะธะฑั‹ะปัŒัŽ, ะฐ ะตัะปะธ ั€ะตัˆะฐั‚ ะดะธะฒั‹ ะฟะปะฐั‚ะธั‚ัŒ, ั‚ะพ ะธ ะตั‰ะต ะผะพะณัƒั‚ ะฝะตั…ะธะปะพ ะฟะพะดะพั€ะพะถะฐั‚ัŒ.
ะ”ะปั ะผะตะฝั ะพั‚ะฒะตั‚ ัะพะฒะตั€ัˆะตะฝะฝะพ ะพั‡ะตะฒะธะดะตะฝ: ะฟะพั‚ะพะผัƒ ั‡ั‚ะพ Facebook ะดะตะปะฐะตั‚ ัƒะถะฐัะฝั‹ะน ะฟะพ ะบะฐั‡ะตัั‚ะฒัƒ ะฟั€ะพะดัƒะบั‚. ะ”ะฐ, ัƒ ะฝะตะณะพ ะผะพะฝะพะฟะพะปัŒะฝะพะต ะฟะพะปะพะถะตะฝะธะต ะธ ะดะฐ, ะธะผ ะฟะพะปัŒะทัƒะตั‚ัั ะพะณั€ะพะผะฝะพะต ะบะพะปะธั‡ะตัั‚ะฒะพ ะปัŽะดะตะน. ะะพ ะผะธั€ ะฝะต ัั‚ะพะธั‚ ะฝะฐ ะผะตัั‚ะต. ะšะพะณะดะฐ-ั‚ะพ ะฒะปะฐะดะตะปัŒั†ะฐะผ ะะพะบะธะธ ะฑั‹ะปะพ ัะผะตัˆะฝะพ ะพั‚ ะฟะตั€ะฒะพะณะพ ะะนั„ะพะฝะฐ. ะžะฝะธ ะดัƒะผะฐะปะธ, ั‡ั‚ะพ ะปัƒั‡ัˆะต ะะพะบะธะธ ะฝะธั‡ะตะณะพ ะฑั‹ั‚ัŒ ะฝะต ะผะพะถะตั‚ ะธ ะพะฝะฐ ะฝะฐะฒัะตะณะดะฐ ะพัั‚ะฐะฝะตั‚ัั ัะฐะผั‹ะผ ัƒะดะพะฑะฝั‹ะผ, ะบั€ะฐัะธะฒั‹ะผ ะธ ั‚ะฒั‘ั€ะดั‹ะผ ั‚ะตะปะตั„ะพะฝะพะผ - ะธ ะดะพะปั ั€ั‹ะฝะบะฐ ัั‚ะพ ะบั€ะฐัะฝะพั€ะตั‡ะธะฒะพ ะดะตะผะพะฝัั‚ั€ะธั€ะพะฒะฐะปะฐ. ะขะตะฟะตั€ัŒ ะธะผ ะฝะต ัะผะตัˆะฝะพ.
ะšะพะฝะตั‡ะฝะพ, ั€ะตะฟั‚ะธะปะพะธะดั‹ ัะพะฟั€ะพั‚ะธะฒะปััŽั‚ัั ะฝะฐะฟะพั€ัƒ ะผะพะปะพะดั‹ั… ะณะตะฝะธะตะฒ: ั‚ะฐะบ ะฆัƒะบะตั€ะฑะตั€ะณะพะผ ะฑั‹ะป ะฟะพะถั€ะฐะฝ Whatsapp, ะฟะพั‚ะพะผ Instagram. ะะพ ะฒัั‘ ะธะผ ะฝะต ะฟะพะถั€ะฐั‚ัŒ, ะŸะฐัˆะฐ ะ”ัƒั€ะพะฒ ะฝะต ะฟั€ะพะดะฐั‘ั‚ัั!
ะขะฐะบ ะฑัƒะดะตั‚ ะธ ั ะคะตะนัะฑัƒะบะพะผ. ะะตะปัŒะทั ะฒัั‘ ะฒั€ะตะผั ะดะตะปะฐั‚ัŒ ะณะพะฒะฝะพ. ะšั‚ะพ-ั‚ะพ ะบะพะณะดะฐ-ั‚ะพ ัะดะตะปะฐะตั‚ ั…ะพั€ะพัˆะธะน ะฟั€ะพะดัƒะบั‚, ะบัƒะดะฐ ะฒัั‘ ะธ ัƒะนะดัƒั‚.
#ัะพั†ัะตั‚ะธ #facebook #ะฐะบั†ะธะธ #ั€ะตะฟั‚ะธะปะพะธะดั‹',
'reply_markup' => bless( {
'rows' => [
bless( {
'buttons' => [
bless( {
'data' => 'send_reaction_0',
'text' => '???? 452'
}, 'Telegram::KeyboardButtonCallback' ),
bless( {
'text' => '???? 21',
'data' => 'send_reaction_1'
}, 'Telegram::KeyboardButtonCallback' )
]
}, 'Telegram::KeyboardButtonRow' )
]
}, 'Telegram::ReplyInlineMarkup' ),
'entities' => [
bless( {
'length' => 199,
'offset' => 0
}, 'Telegram::MessageEntityBold' ),
bless( {
'length' => 8,
'offset' => 919
}, 'Telegram::MessageEntityHashtag' ),
bless( {
'offset' => 928,
'length' => 9
}, 'Telegram::MessageEntityHashtag' ),
bless( {
'length' => 6,
'offset' => 938
}, 'Telegram::MessageEntityHashtag' ),
bless( {
'length' => 11,
'offset' => 945
}, 'Telegram::MessageEntityHashtag' )
],
'views' => 6964,
'flags' => 50368,
'id' => 854,
'post' => 1
}, 'Telegram::Message' ),
'pts_count' => 0
}, 'Telegram::UpdateEditChannelMessage' ),
bless( {
'message' => bless( {
'reply_markup' => bless( {
'rows' => [
bless( {
'buttons' => [
bless( {
'data' => 'send_reaction_0',
'text' => '???? 213'
}, 'Telegram::KeyboardButtonCallback' ),
bless( {
'data' => 'send_reaction_1',
'text' => '???? 8'
}, 'Telegram::KeyboardButtonCallback' )
]
}, 'Telegram::KeyboardButtonRow' )
]
}, 'Telegram::ReplyInlineMarkup' ),
'views' => 2940,
'entities' => [
bless( {
'length' => 609,
'offset' => 348
}, 'Telegram::MessageEntityItalic' )
],
'flags' => 50368,
'post' => 1,
'id' => 857,
'edit_date' => 1571907636,
'date' => 1571902479,
'to_id' => bless( {
'channel_id' => 1380524958
}, 'Telegram::PeerChannel' ),
'message' => 'ะŸะพัั‚ ะฟั€ะพ 1ะก ะฒั‹ะทะฒะฐะป ะฑัƒั€ะฝัƒัŽ ะฟะพะปะตะผะธะบัƒ. ะงะตะปะพะฒะตะบ 10 (ะฒะธะดะธะผะพ, 1ั-ะฟั€ะพะณั€ะฐะผะผะธัั‚ะพะฒ) ะตะดะธะฝะพะดัƒัˆะฝะพ ะฝะฐะฟะธัะฐะปะธ:
// [ั‚ะตะบัั‚ ัะพะพะฑั‰ะตะฝะธั ะฒั‹ั€ะตะทะฐะฝ ั‡ั‚ะพะฑ ะฝะต ะฝะฐั€ัƒัˆะฐั‚ัŒ ะฟั€ะฐะฒะธะป ะฅะฐะฑั€ะฐ ะพ ั€ะตะบะปะฐะผะต]
ะฏ ะฑั‹ ะดะพะฑะฐะฒะธะป, ั‡ั‚ะพ ะฑะปะตัั‚ัั‰ะฐั ัƒ 1ะก ะดะธัั‚ั€ะธะฑัƒั†ะธั, ะฐ ะผะฐั€ะบะตั‚ะธะฝะณ... ะฝัƒ, ั‚ะฐะบะพะต.'
}, 'Telegram::Message' ),
'pts_count' => 0,
'pts' => 158508
}, 'Telegram::UpdateEditChannelMessage' ),
bless( {
'pts' => 158508,
'pts_count' => 0,
'message' => bless( {
'message' => 'ะ—ะดั€ะฐะฒัั‚ะฒัƒะนั‚ะต, ั€ะฐััะบะฐะถะธั‚ะต, ะฟะพะถะฐะปัƒะนัั‚ะฐ, ั‡ะตะผ ะฒั€ะตะดะธั‚ ัะบะพะฝะพะผะธะบะต 1ะก?
// [ั‚ะตะบัั‚ ัะพะพะฑั‰ะตะฝะธั ะฒั‹ั€ะตะทะฐะฝ ั‡ั‚ะพะฑ ะฝะต ะฝะฐั€ัƒัˆะฐั‚ัŒ ะฟั€ะฐะฒะธะป ะฅะฐะฑั€ะฐ ะพ ั€ะตะบะปะฐะผะต]
#ัะพั„ั‚ #it #ัะบะพะฝะพะผะธะบะฐ',
'edit_date' => 1571907650,
'date' => 1571893707,
'to_id' => bless( {
'channel_id' => 1380524958
}, 'Telegram::PeerChannel' ),
'flags' => 50368,
'post' => 1,
'id' => 856,
'reply_markup' => bless( {
'rows' => [
bless( {
'buttons' => [
bless( {
'data' => 'send_reaction_0',
'text' => '???? 360'
}, 'Telegram::KeyboardButtonCallback' ),
bless( {
'data' => 'send_reaction_1',
'text' => '???? 32'
}, 'Telegram::KeyboardButtonCallback' )
]
}, 'Telegram::KeyboardButtonRow' )
]
}, 'Telegram::ReplyInlineMarkup' ),
'views' => 4416,
'entities' => [
bless( {
'offset' => 0,
'length' => 64
}, 'Telegram::MessageEntityBold' ),
bless( {
'offset' => 1551,
'length' => 5
}, 'Telegram::MessageEntityHashtag' ),
bless( {
'length' => 3,
'offset' => 1557
}, 'Telegram::MessageEntityHashtag' ),
bless( {
'offset' => 1561,
'length' => 10
}, 'Telegram::MessageEntityHashtag' )
]
}, 'Telegram::Message' )
}, 'Telegram::UpdateEditChannelMessage' )
]
}, 'Telegram::Updates::ChannelDifference' )
}, 'MTProto::RpcResult' )
};
2019.10.24 12:00:51 $1 = {
'in' => bless( {
'update' => bless( {
'user_id' => 2507460,
'status' => bless( {
'was_online' => 1571907651
}, 'Telegram::UserStatusOffline' )
}, 'Telegram::UpdateUserStatus' ),
'date' => 1571907650
}, 'Telegram::UpdateShort' )
};
2019.10.24 12:05:46 $1 = {
'in' => bless( {
'chats' => [],
'date' => 1571907946,
'seq' => 0,
'updates' => [
bless( {
'max_id' => 141719,
'channel_id' => 1295963795
}, 'Telegram::UpdateReadChannelInbox' )
],
'users' => []
}, 'Telegram::Updates' )
};
2019.10.24 13:01:23 $1 = {
'in' => bless( {
'server_salt' => '4914425622822907323',
'unique_id' => '5297282355827493819',
'first_msg_id' => '6751307555044380692'
}, 'MTProto::NewSessionCreated' )
};
2019.10.24 13:24:21 $1 = {
'in' => bless( {
'chats' => [
bless( {
'username' => 'freebsd_ru',
'version' => 0,
'flags' => 5440,
'title' => 'freebsd_ru',
'min' => 1,
'photo' => bless( {
'photo_small' => bless( {
'local_id' => 328733,
'volume_id' => 235140688,
'dc_id' => 2,
'file_reference' => '
'secret' => '4426006807282303416'
}, 'Telegram::FileLocation' ),
'photo_big' => bless( {
'dc_id' => 2,
'file_reference' => '
'volume_id' => 235140688,
'local_id' => 328735,
'secret' => '71251192991540083'
}, 'Telegram::FileLocation' )
}, 'Telegram::ChatPhoto' ),
'date' => 1461248502,
'id' => 1038300508,
'democracy' => 1,
'megagroup' => 1
}, 'Telegram::Channel' )
],
'users' => [
bless( {
'last_name' => 'Panov',
'flags' => 1048646,
'min' => 1,
'id' => 82234609,
'status' => bless( {}, 'Telegram::UserStatusRecently' ),
'first_name' => 'Dima'
}, 'Telegram::User' )
],
'seq' => 0,
'date' => 1571912647,
'updates' => [
bless( {
'pts' => 137596,
'message' => bless( {
'flags' => 256,
'message' => 'ะกะพะทะดะฐั‚ัŒ ะดะถะตะนะป ั ะธะผะตะฝะตะผ ะฟะพะบะพั€ะพั‡ะต ??',
'to_id' => bless( {
'channel_id' => 1038300508
}, 'Telegram::PeerChannel' ),
'id' => 119634,
'date' => 1571912647,
'from_id' => 82234609
}, 'Telegram::Message' ),
'pts_count' => 1
}, 'Telegram::UpdateNewChannelMessage' )
]
}, 'Telegram::Updates' )
};

เชนเชพ, เชนเซ‡เชคเซเชธเชฐ เชฌเช—เชพเชกเชจเชพเชฐ เชจเชฅเซ€ - เชœเซ‹ เชคเชฎเซ‡ เชนเชœเซ€ เชธเซเชงเซ€ เชคเซ‡ เชตเชพเช‚เชšเซเชฏเซเช‚ เชจเชฅเซ€, เชคเซ‹ เช†เช—เชณ เชตเชงเซ‹ เช…เชจเซ‡ เชคเซ‡ เช•เชฐเซ‹!

เช“เชน, เชตเชพเช‡~~... เช† เชถเซเช‚ เชฆเซ‡เช–เชพเชฏ เช›เซ‡? เช•เช‚เชˆเช• เช–เซ‚เชฌ เชœ เชชเชฐเชฟเชšเชฟเชค... เช•เชฆเชพเชš เช† JSON เชฎเชพเช‚ เชฒเชพเช•เซเชทเชฃเชฟเช• เชตเซ‡เชฌ API เชจเซเช‚ เชกเซ‡เชŸเชพ เชฎเชพเชณเช–เซเช‚ เช›เซ‡, เชธเชฟเชตเชพเชฏ เช•เซ‡ เชตเชฐเซเช—เซ‹ เชชเชฃ เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒเชพ เชนเซ‹เชฏ?..

เชคเซ‹ เช† เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชนเชพเชฐ เช†เชตเซ‡ เช›เซ‡... เช† เชฌเชงเซเช‚ เชถเซเช‚ เช›เซ‡, เชธเชพเชฅเซ€เช“?... เช†เชŸเชฒเซ‹ เชชเซเชฐเชฏเชพเชธ - เช…เชจเซ‡ เช…เชฎเซ‡ เชตเซ‡เชฌ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซ‹ เชœเซเชฏเชพเช‚ เช†เชฐเชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฐเซ‹เช•เชพเชฏเชพ. เชฎเชพเชคเซเชฐ เชถเชฐเซ‚?..เชถเซเช‚ HTTPS เชชเชฐ เชฎเชพเชคเซเชฐ JSON เชธเชฐเชณ เชจเชนเซ€เช‚ เชนเซ‹เชฏ?! เชฌเชฆเชฒเชพเชฎเชพเช‚ เช…เชฎเชจเซ‡ เชถเซเช‚ เชฎเชณเซเชฏเซเช‚? เชถเซเช‚ เชชเซเชฐเชฏเชคเซเชจเซ‹ เชคเซ‡ เชฏเซ‹เช—เซเชฏ เชนเชคเชพ?

เชšเชพเชฒเซ‹ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเซ€เช เช•เซ‡ TL+MTProtoเช เช†เชชเชฃเชจเซ‡ เชถเซเช‚ เช†เชชเซเชฏเซเช‚ เช…เชจเซ‡ เช•เชฏเชพ เชตเชฟเช•เชฒเซเชชเซ‹ เชถเช•เซเชฏ เช›เซ‡. เช เซ€เช• เช›เซ‡, HTTP, เชœเซ‡ เชตเชฟเชจเช‚เชคเซ€-เชชเซเชฐเชคเชฟเชธเชพเชฆ เชฎเซ‹เชกเซ‡เชฒ เชชเชฐ เชงเซเชฏเชพเชจ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡ เช–เชฐเชพเชฌ เชซเชฟเชŸ เช›เซ‡, เชชเชฐเช‚เชคเซ เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚ TLS เชจเซ€ เชŸเซ‹เชš เชชเชฐ เช•เช‚เชˆเช• เช›เซ‡?

เช•เซ‹เชฎเซเชชเซ‡เช•เซเชŸ เชธเซ€เชฐเซ€เชฏเชฒเชพเช‡เชเซ‡เชถเชจ. JSON เชœเซ‡เชตเซเช‚ เชœ เช† เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเช•เซเชšเชฐ เชœเซ‹เชˆเชจเซ‡, เชฎเชจเซ‡ เชฏเชพเชฆ เช›เซ‡ เช•เซ‡ เชคเซ‡เชจเชพ เชฌเชพเชˆเชจเชฐเซ€ เชตเชฐเซเชเชจ เช›เซ‡. เชšเชพเชฒเซ‹ MsgPack เชจเซ‡ เช…เชชเชฐเซเชฏเชพเชชเซเชค เชฐเซ€เชคเซ‡ เชเช•เซเชธเซเชŸเซ‡เชจเซเชธเชฟเชฌเชฒ เชคเชฐเซ€เช•เซ‡ เชšเชฟเชนเซเชจเชฟเชค เช•เชฐเซ€เช, เชชเชฐเช‚เชคเซ เชคเซเชฏเชพเช‚ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, CBOR - เชฎเชพเชฐเซเช— เชฆเซเชตเชพเชฐเชพ, เชฎเชพเช‚ เชตเชฐเซเชฃเชตเซ‡เชฒ เชงเซ‹เชฐเชฃ เช†เชฐเชเชซเชธเซ€ 7049. เชคเซ‡ เช เชนเช•เซ€เช•เชค เชฎเชพเชŸเซ‡ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เชŸagsเช—เซเชธ, เชตเชฟเชธเซเชคเชฐเชฃ เชชเชฆเซเชงเชคเชฟ เชคเชฐเซ€เช•เซ‡, เช…เชจเซ‡ เชตเชšเซเชšเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชชเซเชฐเชฎเชพเชฃเชฟเชค เช‰เชชเชฒเชฌเซเชง:

  • 25 + 256 - เชฒเชพเช‡เชจ เชจเช‚เชฌเชฐเชจเชพ เชธเช‚เชฆเชฐเซเชญ เชธเชพเชฅเซ‡ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชฐเซ‡เช–เชพเช“ เชฌเชฆเชฒเชตเซ€, เช†เชตเซ€ เชธเชธเซเชคเซ€ เช•เชฎเซเชชเซเชฐเซ‡เชถเชจ เชชเชฆเซเชงเชคเชฟ
  • 26 - เชตเชฐเซเช—เชจเชพ เชจเชพเชฎ เช…เชจเซ‡ เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐ เชฆเชฒเซ€เชฒเซ‹ เชธเชพเชฅเซ‡ เชถเซเชฐเซ‡เชฃเซ€เชฌเชฆเซเชง เชชเชฐเซเชฒ เช‘เชฌเซเชœเซ‡เช•เซเชŸ
  • 27 - เชชเซเชฐเช•เชพเชฐเชจเซเช‚ เชจเชพเชฎ เช…เชจเซ‡ เช•เชจเซเชธเซเชŸเซเชฐเช•เซเชŸเชฐ เชฆเชฒเซ€เชฒเซ‹ เชธเชพเชฅเซ‡ เช•เซเชฐเชฎเชพเช‚เช•เชฟเชค เชญเชพเชทเชพ-เชธเซเชตเชคเช‚เชคเซเชฐ เช‘เชฌเซเชœเซ‡เช•เซเชŸ

เช เซ€เช• เช›เซ‡, เชฎเซ‡เช‚ เชธเชฎเชพเชจ เชกเซ‡เชŸเชพเชจเซ‡ TL เช…เชจเซ‡ CBOR เชฎเชพเช‚ เชธเซเชŸเซเชฐเชฟเช‚เช— เช…เชจเซ‡ เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชชเซ‡เช•เชฟเช‚เช— เชธเช•เซเชทเชฎ เชธเชพเชฅเซ‡ เชถเซเชฐเซ‡เชฃเซ€เชฌเชฆเซเชง เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹. เชชเชฐเชฟเชฃเชพเชฎ เชฎเซ‡เช—เชพเชฌเชพเชˆเชŸเชฅเซ€ เช•เซเชฏเชพเช‚เช• CBOR เชจเซ€ เชคเชฐเชซเซ‡เชฃเชฎเชพเช‚ เชฌเชฆเชฒเชพเชตเชพ เชฒเชพเช—เซเชฏเซเช‚:

cborlen=1039673 tl_len=1095092

เช…เชจเซ‡ เชคเซ‡เชฅเซ€, เชจเชฟเชทเซเช•เชฐเซเชท: เชคเซเชฏเชพเช‚ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฐเซ€เชคเซ‡ เชธเชฐเชณ เชซเซ‹เชฐเซเชฎเซ‡เชŸเซเชธ เช›เซ‡ เชœเซ‡ เชคเซเชฒเชจเชพเชคเซเชฎเช• เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชธเชพเชฅเซ‡, เชธเชฟเช‚เช•เซเชฐเชจเชพเช‡เชเซ‡เชถเชจ เชจเชฟเชทเซเชซเชณเชคเชพ เช…เชฅเชตเชพ เช…เชœเชพเชฃเซเชฏเชพ เช“เชณเช–เช•เชฐเซเชคเชพเชจเซ€ เชธเชฎเชธเซเชฏเชพเชจเซ‡ เช†เชงเชฟเชจ เชจเชฅเซ€.

เชเชกเชชเซ€ เชœเซ‹เชกเชพเชฃ เชธเซเชฅเชพเชชเชจเชพ. เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชชเซเชจเชƒเชœเซ‹เชกเชพเชฃ เชชเช›เซ€ เชถเซ‚เชจเซเชฏ RTT (เชœเซเชฏเชพเชฐเซ‡ เช•เซ€ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชเช•เชตเชพเชฐ เชœเชจเชฐเซ‡เชŸ เชฅเชˆ เช—เชˆ เชนเซ‹เชฏ) - เชชเชนเซ‡เชฒเชพ เชœ MTProto เชธเช‚เชฆเซ‡เชถเชฅเซ€ เชฒเชพเช—เซ, เชชเชฐเช‚เชคเซ เช•เซ‡เชŸเชฒเชพเช• เชฐเชฟเชเชฐเซเชตเซ‡เชถเชจ เชธเชพเชฅเซ‡ - เชธเชฎเชพเชจ เชฎเซ€เช เซเช‚ เชฎเชพเชฐเชตเซเช‚, เชธเชคเซเชฐ เชธเชกเซ‡เชฒเซเช‚ เชจเชฅเซ€, เชตเช—เซ‡เชฐเซ‡. เชคเซ‡เชจเชพ เชฌเชฆเชฒเซ‡ TLS เช…เชฎเชจเซ‡ เชถเซเช‚ เช‘เชซเชฐ เช•เชฐเซ‡ เช›เซ‡? เชตเชฟเชทเชฏ เชชเชฐ เช…เชตเชคเชฐเชฃ:

TLS เชฎเชพเช‚ PFS เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, TLS เชธเชคเซเชฐ เชŸเชฟเช•เชฟเชŸ (เช†เชฐเชเชซเชธเซ€ 5077) เช•เซ€เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชตเชพเชŸเชพเช˜เชพเชŸเซ‹ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เช…เชจเซ‡ เชธเชฐเซเชตเชฐ เชชเชฐ เช•เซ€ เชฎเชพเชนเชฟเชคเซ€ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เชเชจเซเช•เซเชฐเชฟเชชเซเชŸเซ‡เชก เชธเชคเซเชฐ เชซเชฐเซ€ เชถเชฐเซ‚ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡. เชชเซเชฐเชฅเชฎ เช•เชจเซ‡เช•เซเชถเชจ เช–เซ‹เชฒเชคเซ€ เชตเช–เชคเซ‡ เช…เชจเซ‡ เช•เซ€เช“ เชฌเชจเชพเชตเชคเซ€ เชตเช–เชคเซ‡, เชธเชฐเซเชตเชฐ เช•เชจเซ‡เช•เซเชถเชจ เชธเซเชฅเชฟเชคเชฟเชจเซ‡ เชเชจเซเช•เซเชฐเชฟเชชเซเชŸ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เช•เซเชฒเชพเชฏเช‚เชŸเชจเซ‡ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เช•เชฐเซ‡ เช›เซ‡ (เชธเชคเซเชฐ เชŸเชฟเช•เชฟเชŸเชจเชพ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚). เชคเชฆเชจเซเชธเชพเชฐ, เชœเซเชฏเชพเชฐเซ‡ เช•เชจเซ‡เช•เซเชถเชจ เชซเชฐเซ€ เชถเชฐเซ‚ เชฅเชพเชฏ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เช•เซเชฒเชพเชฏเช‚เชŸ เชธเชคเซเชฐ เช•เซ€ เชธเชนเชฟเชค, เชธเชคเซเชฐเชจเซ€ เชŸเชฟเช•เชฟเชŸ เชธเชฐเซเชตเชฐ เชชเชฐ เชชเชพเช›เชพ เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡. เชŸเชฟเช•เชฟเชŸ เชชเซ‹เชคเซ‡ เชœ เช…เชธเซเชฅเชพเชฏเซ€ เช•เซ€ (เชธเซ‡เชถเชจ เชŸเชฟเช•เชฟเชŸ เช•เซ€) เชตเชกเซ‡ เชเชจเซเช•เซเชฐเชฟเชชเซเชŸเซ‡เชก เช›เซ‡, เชœเซ‡ เชธเชฐเซเชตเชฐ เชชเชฐ เชธเช‚เช—เซเชฐเชนเชฟเชค เช›เซ‡ เช…เชจเซ‡ เช•เซเชฒเชธเซเชŸเชฐเซเชก เชธเซ‹เชฒเซเชฏเซเชถเชจเซเชธเชฎเชพเช‚ SSL เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชคเชพ เชคเชฎเชพเชฎ เชซเซเชฐเชจเซเชŸเชเชจเซเชก เชธเชฐเซเชตเชฐเซเชธเชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชฅเชตเซ€ เชœเซ‹เชˆเช.[10] เช†เชฎ, เชœเซ‹ เช…เชธเซเชฅเชพเชฏเซ€ เชธเชฐเซเชตเชฐ เช•เซ€ เชธเชพเชฅเซ‡ เชšเซ‡เชกเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซ‹ เชธเชคเซเชฐ เชŸเชฟเช•เชฟเชŸเชจเซ€ เชฐเชœเซ‚เช†เชค PFSเชจเซเช‚ เช‰เชฒเซเชฒเช‚เช˜เชจ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซเชฏเชพเชฐเซ‡ เชคเซ‡เช“ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏ เชธเซเชงเซ€ เชธเช‚เช—เซเชฐเชนเชฟเชค เชฅเชพเชฏ เช›เซ‡ (OpenSSL, nginx, Apache เชคเซ‡เชฎเชจเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชจเชพ เชธเชฎเช—เซเชฐ เชธเชฎเชฏเช—เชพเชณเชพ เชฎเชพเชŸเซ‡ เชกเชฟเชซเซ‹เชฒเซเชŸ เชฐเซ‚เชชเซ‡ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเซ‡ เช›เซ‡; เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เชธเชพเช‡เชŸเซเชธ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡. เช•เซ‡เชŸเชฒเชพเช• เช•เชฒเชพเช•เซ‹ เชธเซเชงเซ€เชจเซ€ เชšเชพเชตเซ€, เชฆเชฟเชตเชธเซ‹ เชธเซเชงเซ€).

เช…เชนเซ€เช‚ RTT เชถเซ‚เชจเซเชฏ เชจเชฅเซ€, เชคเชฎเชพเชฐเซ‡ เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ ClientHello เช…เชจเซ‡ ServerHelloเชจเซ€ เช†เชช-เชฒเซ‡ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชœเซ‡เชจเชพ เชชเช›เซ€ เช•เซเชฒเชพเชฏเชจเซเชŸ เชซเชฟเชจเชฟเชถเซเชก เชธเชพเชฅเซ‡ เชกเซ‡เชŸเชพ เชฎเซ‹เช•เชฒเซ€ เชถเช•เซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ เช…เชนเซ€เช‚ เช†เชชเชฃเซ‡ เชฏเชพเชฆ เชฐเชพเช–เชตเซเช‚ เชœเซ‹เชˆเช เช•เซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชตเซ‡เชฌ เชจเชฅเซ€, เชคเซ‡เชจเชพ เชจเชตเชพ เช–เซ‹เชฒเซ‡เชฒเชพ เช•เชจเซ‡เช•เซเชถเชจเชจเชพ เชธเชฎเซ‚เชน เชธเชพเชฅเซ‡, เชชเชฐเช‚เชคเซ เชเช• เชฎเซ‡เชธเซ‡เชจเซเชœเชฐ เช›เซ‡, เชœเซ‡เชจเซเช‚ เช•เชจเซ‡เช•เซเชถเชจ เช˜เชฃเซ€เชตเชพเชฐ เชเช• เช…เชจเซ‡ เชตเชงเซ เช•เซ‡ เช“เช›เชพ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏ เชธเซเชงเซ€ เชšเชพเชฒเชคเซเช‚ เชนเซ‹เชฏ เช›เซ‡, เชตเซ‡เชฌ เชชเซƒเชทเซเช เซ‹เชจเซ€ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เชŸเซ‚เช‚เช•เซ€ เชตเชฟเชจเช‚เชคเซ€เช“ - เชฌเชงเซเช‚ เชฎเชฒเซเชŸเชฟเชชเซเชฒเซ‡เช•เซเชธเซเชก เช›เซ‡. เช†เช‚เชคเชฐเชฟเช• เชฐเซ€เชคเซ‡ เชเชŸเชฒเซ‡ เช•เซ‡, เชœเซ‹ เช†เชชเชฃเซ‡ เช–เชฐเซ‡เช–เชฐ เช–เชฐเชพเชฌ เชธเชฌเชตเซ‡ เชตเชฟเชญเชพเช—เชฎเชพเช‚ เชจ เช†เชตเซเชฏเชพ เชนเซ‹เชฏ เชคเซ‹ เชคเซ‡ เชคเชฆเซเชฆเชจ เชธเซเชตเซ€เช•เชพเชฐเซเชฏ เช›เซ‡.

เชฌเซ€เชœเซเช‚ เช•เช‚เชˆเช• เชญเซ‚เชฒเซ€ เช—เชฏเชพ เช›เซ‹? เชŸเชฟเชชเซเชชเชฃเซ€เช“เชฎเชพเช‚ เชฒเช–เซ‹.

เชšเชพเชฒเซ เชฐเชนเซ€ เชถเช•เชพเชฏ!

เชชเซ‹เชธเซเชŸเซเชธเชจเซ€ เช† เชถเซเชฐเซ‡เชฃเซ€เชจเชพ เชฌเซ€เชœเชพ เชญเชพเช—เชฎเชพเช‚ เช…เชฎเซ‡ เชคเช•เชจเซ€เช•เซ€ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เชธเช‚เชธเซเชฅเชพเช•เซ€เชฏ เชฎเซเชฆเซเชฆเชพเช“ - เช…เชญเชฟเช—เชฎเซ‹, เชตเชฟเชšเชพเชฐเชงเชพเชฐเชพ, เช‡เชจเซเชŸเชฐเชซเซ‡เชธ, เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชชเซเชฐเชคเซเชฏเซ‡เชจเซเช‚ เชตเชฒเชฃ เชตเช—เซ‡เชฐเซ‡ เชชเชฐ เชตเชฟเชšเชพเชฐ เช•เชฐเซ€เชถเซเช‚. เชœเซ‹ เช•เซ‡, เช…เชนเซ€เช‚ เชชเซเชฐเชธเซเชคเซเชค เช•เชฐเชพเชฏเซ‡เชฒเซ€ เชคเช•เชจเซ€เช•เซ€ เชฎเชพเชนเชฟเชคเซ€เชจเชพ เช†เชงเชพเชฐเซ‡.

เชคเซเชฐเซ€เชœเซ‹ เชญเชพเช— เชคเช•เชจเซ€เช•เซ€ เช˜เชŸเช•/เชตเชฟเช•เชพเชธ เช…เชจเซเชญเชตเชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เชถเซ‡. เชคเชฎเซ‡ เชถเซ€เช–เซ€ เชถเช•เชถเซ‹, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡:

  • TL เชชเซเชฐเช•เชพเชฐเซ‹เชจเซ€ เชตเชฟเชตเชฟเชงเชคเชพ เชธเชพเชฅเซ‡ เชฐเซ‹เช—เชšเชพเชณเซ‹ เชšเชพเชฒเซ เชฐเชพเช–เชตเซ‹
  • เชšเซ‡เชจเชฒเซ‹ เช…เชจเซ‡ เชธเซเชชเชฐเช—เซเชฐเซเชชเซเชธ เชตเชฟเชถเซ‡ เช…เชœเชพเชฃเซ€ เชตเชธเซเชคเซเช“
  • เชถเชพ เชฎเชพเชŸเซ‡ เชธเช‚เชตเชพเชฆเซ‹ เชฐเซ‹เชธเซเชŸเชฐ เช•เชฐเชคเชพเช‚ เชตเชงเซ เช–เชฐเชพเชฌ เช›เซ‡
  • เชธเช‚เชชเซ‚เชฐเซเชฃ เชตเชฟ เชธเช‚เชฌเช‚เชงเชฟเชค เชธเช‚เชฆเซ‡เชถ เชธเช‚เชฌเซ‹เชงเชจ เชตเชฟเชถเซ‡
  • เชซเซ‹เชŸเซ‹ เช…เชจเซ‡ เชˆเชฎเซ‡เชœ เชตเชšเซเชšเซ‡ เชถเซเช‚ เชคเชซเชพเชตเชค เช›เซ‡
  • เช‡เชฎเซ‹เชœเซ€ เช‡เชŸเชพเชฒเชฟเช• เชŸเซ‡เช•เซเชธเซเชŸเชฎเชพเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฆเช–เชฒ เช•เชฐเซ‡ เช›เซ‡

เช…เชจเซ‡ เช…เชจเซเชฏ crutches! เชœเซ‹เชกเชพเชฏเซ‡เชฒเชพ เชฐเชนเซ‹!

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹