เชเชพเชฐ เชฎเชนเชฟเชจเชพเชฅเซ เชนเซเช "เชฌเซเชฒเซเชเชเซเชจ เชชเชฐ เชเชงเชพเชฐเชฟเชค เชธเชฐเชเชพเชฐเซ เช
เชจเซ เชเชฆเซเชฏเซเชเชฟเช เชเซเชทเซเชคเซเชฐเซเชฎเชพเช เชกเซเชเชพ เชชเซเชฐเซเชเซเชเซเชถเชจ เช
เชจเซ เชฎเซเชจเซเชเชฎเซเชจเซเช เชเซเชฒเซเชธเชจเซ เชตเชฟเชเชพเชธ" เชจเชพเชฎเชจเชพ เชชเซเชฐเซเชเซเชเซเช เชชเชฐ เชเชพเชฎ เชเชฐเซ เชฐเชนเซเชฏเซ เชเซเช.
เชนเชตเซ เชนเซเช เชคเชฎเชจเซ เชเชฃเชพเชตเชตเชพ เชฎเชพเชเชเซ เชเซเช เชเซ เชฎเซเช เช เชชเซเชฐเซเชเซเชเซเช เชเซเชตเซ เชฐเซเชคเซ เชถเชฐเซ เชเชฐเซเชฏเซ, เช
เชจเซ เชนเชตเซ เชนเซเช เชชเซเชฐเซเชเซเชฐเชพเชฎ เชเซเชกเชจเซเช เชตเชฟเชเชคเชตเชพเชฐ เชตเชฐเซเชฃเชจ เชเชฐเซเชถ.
เชฒเซเชเซเชจเซ เชถเซเชฐเซเชฃเซเชฎเชพเช เช เชชเชนเซเชฒเซ เชฒเซเช เชเซ. เช
เชนเซเช เชนเซเช เชธเชฐเซเชตเชฐ เช
เชจเซ เชชเซเชฐเซเชเซเชเซเชฒเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเซเช เชเซเช. เชตเชพเชธเซเชคเชตเชฎเชพเช, เชฐเซเชกเชฐ เช เชฌเซเชฒเซเชเชเซเชจ เชคเชคเซเชตเซเชจเชพ เชชเซเชคเชพเชจเชพ เชตเชฐเซเชเชจ เชชเชฃ เชฒเชเซ เชถเชเซ เชเซ.
เชเชฏเชพ เชตเชฐเซเชทเซ, เชกเชฟเชเชฟเชเชฒ เชฌเซเชฐเซเชเชฅเซเชฐเซ เชนเซเชเชพเชฅเซเชจเชฎเชพเช, เชคเซเช เชกเชฟเชธเซเชเซเชฐเชฟเชฌเซเชฏเซเชเซเชก เชฒเซเชเชฐ เชเซเชเซเชจเซเชฒเซเชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชฆเซเชฏเซเช เช เชจเซ เชกเชฟเชเชฟเชเชฒ เช เชฐเซเชฅเชคเชเชคเซเชฐ เชฎเชพเชเซ เชเชชเชฏเซเชเซ เชธเชฟเชธเซเชเชฎ เชฌเชจเชพเชตเชตเชพเชจเซ เชตเชฟเชเชพเชฐ เชฒเชเชจเซ เชเชตเซเชฏเชพ เชนเชคเชพ; เชเชจเซเชตเซเชถเชจ เชเชธเชฟเชธเซเชเชจเซเชธ เชซเชเชก เชฆเซเชตเชพเชฐเชพ เชตเชฟเชเชพเชธ เชฎเชพเชเซ เชเซเชฐเชพเชจเซเช เชชเชฃ เชเชพเชฐเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ (เชฎเชพเชฐเซ เช เชฒเชเชฅเซ เชฒเชเชตเซเช เชเซเชเช. เช เชจเซเชฆเชพเชจ เชตเชฟเชถเซ เชฒเซเช, เชเซเช เชนเชฎเชฃเชพเช เช เชธเซเชเชพเชฐเซเชเช เชช เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซ ), เช เชจเซ เชนเชตเซ เชเซเชฐเชฎเชฎเชพเช.
เชตเชฟเชเชพเชธ เชเซ เชญเชพเชทเชพเชฎเชพเช เชฅเชพเชฏ เชเซ, เช
เชจเซ เชกเซเชเชพเชฌเซเช เชเซเชฎเชพเช เชฌเซเชฒเซเชเซเชธ เชธเชเชเซเชฐเชนเชฟเชค เชฅเชพเชฏ เชเซ เชคเซ เชฒเซเชตเชฒเชกเซเชฌเซ เชเซ.
เชฎเซเชเซเชฏ เชญเชพเชเซ เชชเซเชฐเซเชเซเชเซเชฒ เชเซ, เชธเชฐเซเชตเชฐ (เชเซ TCP เช
เชจเซ WebSocket เชเชฒเชพเชตเซ เชเซ - เชชเซเชฐเชฅเชฎ เชฌเซเชฒเซเชเชเซเชจเชจเซ เชธเชฟเชเชเซเชฐเชจเชพเชเช เชเชฐเชตเชพ เชฎเชพเชเซ, เชฌเซเชเซ เชเซเชฒเชพเชฏเชเชเชจเซ เชเชจเซเชเซเช เชเชฐเชตเชพ เชฎเชพเชเซ, เชตเซเชฏเชตเชนเชพเชฐเซ เช
เชจเซ JavaScript เชชเชฐเชฅเซ เชเชฆเซเชถเซ เชฎเซเชเชฒเชตเชพ เชฎเชพเชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ.
เชเชฒเซเชฒเซเช เชเชฐเซเชฏเซ เชเซ เชคเซเชฎ, เช เชฌเซเชฒเซเชเชเซเชจ เชฎเซเชเซเชฏเชคเซเชตเซ เชธเชชเซเชฒเชพเชฏเชฐเซเชธ เช เชจเซ เชเซเชฐเชพเชนเชเซ เชตเชเซเชเซ เช เชฅเชตเชพ เชฌเชเชจเซ เชเช เชตเซเชฏเชเซเชคเชฟเชฎเชพเช เชเชคเซเชชเชพเชฆเชจเซเชจเชพ เชตเชฟเชจเชฟเชฎเชฏเชจเซ เชธเซเชตเชเชพเชฒเชฟเชค เช เชจเซ เชธเซเชฐเชเซเชทเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชเชฐเซเชฐเซ เชเซ. เช เชฒเซเชเซเชจเซ เชเชเชฌเซเชเชพ เชชเชฐ เชตเชฟเชถเซเชตเชพเชธ เชเชฐเชตเชพเชจเซ เชเซเช เชเชคเชพเชตเชณ เชจเชฅเซ. เชชเชฐเชเชคเซ เชเชพเชฐเซเชฏ เชซเชเซเชค เชฌเชฟเชฒเซเช-เชเชจ เชเซเชฒเซเชเซเชฏเซเชฒเซเชเชฐ เชธเชพเชฅเซ "เชเซเชเชฌเซเช" เชฌเชจเชพเชตเชตเชพเชจเซเช เชจเชฅเซ, เชชเชฐเชเชคเซ เชเช เชธเชฟเชธเซเชเชฎ เชเซ เชเซ เชเชคเซเชชเชพเชฆเชจ เชเซเชตเชจ เชเชเซเชฐ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชคเซ เชตเชเชคเซ เชเชฆเซเชญเชตเชคเชพ เชฎเซเชเชพเชญเชพเชเชจเชพ เชจเชฟเชฏเชฎเชฟเชค เชเชพเชฐเซเชฏเซเชจเซ เชธเซเชตเชเชพเชฒเชฟเชค เชเชฐเซ เชเซ. เชฌเชพเชฏเชเซเชเซเชก เชเซ เชเซ เช เชฌเชพเชฌเชค เชฎเชพเชเซ เชเชตเชพเชฌเชฆเชพเชฐ เชเซ, เชเซเชฎ เชเซ เชฌเซเชฒเซเชเชเซเชจ เชธเชพเชฅเซ เชฐเซเชขเชฟเชเชค เชเซ, เชคเซ เชตเซเชฏเชตเชนเชพเชฐเซเชจเชพ เชเชจเชชเซเชเซเชธ เช เชจเซ เชเชเชเชชเซเชเชฎเชพเช เชธเชเชเซเชฐเชนเชฟเชค เชฅเชพเชฏ เชเซ (เชตเซเชฏเชตเชนเชพเชฐเซ เชชเซเชคเซ เชฌเซเชฒเซเชเซเชธเชฎเชพเช เชธเชเชเซเชฐเชนเชฟเชค เชฅเชพเชฏ เชเซ, เชฒเซเชตเชฒเชกเซเชฌเซเชฎเชพเชเชจเชพ เชฌเซเชฒเซเชเซเชธ GOB เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชชเซเชฐเซ-เชเชจเชเซเชกเซเชก เชนเซเชฏ เชเซ). เชชเซเชฐเชฅเชฎ, เชเชพเชฒเซ เชชเซเชฐเซเชเซเชเซเชฒ เช เชจเซ เชธเชฐเซเชตเชฐ (เชเชฐเซเชซ เชจเซเชก) เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซเช.
เชชเซเชฐเซเชเซเชเซเชฒ เชเชเชฟเชฒ เชจเชฅเซ, เชคเซเชจเซ เชเชเซ เชฎเซเชฆเซเชฆเซ เช เชฎเซเช เชกเซเชเชพ เชฒเซเชก เชเชฐเชตเชพเชจเชพ เชฎเซเชก เชชเชฐ เชธเซเชตเชฟเช เชเชฐเชตเชพเชจเซ เชเซ, เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชฌเซเชฒเซเช เช เชฅเชตเชพ เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจ, เชเชพเชธ เชเชฎเชพเชจเซเชก เชฒเชพเชเชจเชจเชพ เชชเซเชฐเชคเชฟเชญเชพเชตเชฎเชพเช, เช เชจเซ เชคเซ เชเชจเซเชตเซเชจเซเชเชฐเซเชจเซ เชเชชเชฒเซ เชฎเชพเชเซ เชชเชฃ เชเชฐเซเชฐเซ เชเซ, เชเซเชฅเซ เชจเซเชกเชจเซ เชเชฌเชฐ เชชเชกเซ เชเซ เชคเซ เชเซเชฃ เชเซ. เชธเชพเชฅเซ เชเซเชกเชพเชฏเซเชฒ เชเซ เช เชจเซ เชคเซเช เชเซเชตเซ เชฐเซเชคเซ เชตเซเชฏเชตเชธเชพเชฏ เชเชฐเซ เชเซ (เชธเชฟเชเชเซเชฐเซเชจเชพเชเชเซเชถเชจ เชธเชคเซเชฐ เชฎเชพเชเซ เชเซเชกเชพเชฏเซเชฒเชพ เชเชพเชเช เซเชจเซ "เชชเชกเซเชถเซ" เชชเชฃ เชเชนเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเชพเชฐเชฃ เชเซ เชคเซเชฎเชจเซ IP เชเชพเชฃเซเชคเซ เชเซ เช เชจเซ เชคเซเชฎเชจเซ เชธเซเชเซเช เชกเซเชเชพ เชฎเซเชฎเชฐเซเชฎเชพเช เชธเชเชเซเชฐเชนเชฟเชค เชเซ).
เชเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเชฐเซเชธเชจเซ เชธเชฎเชเชฎเชพเช เชซเซเชฒเซเชกเชฐเซเชธ (เชกเชฟเชฐเซเชเซเชเชฐเซเช เชเซเชจเซ Linux เชเชนเซ เชเซ)เชจเซ เชชเซเชเซเช เชเชนเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฅเซ เช เชกเชฟเชฐเซเชเซเชเชฐเซเชฎเชพเชเชฅเซ Go เชเซเชก เชธเชพเชฅเซ เชฆเชฐเซเช เชซเชพเชเชฒเชจเซ เชถเชฐเซเชเชคเชฎเชพเช เชคเซเช เชชเซเชเซเช เชซเซเชฒเซเชกเชฐ_เชจเชพเชฎ_where_this_file เชธเซเชฅเชฟเชค เชเซ เชฒเชเซ เชเซ. เชจเชนเชฟเชเชคเชฐ, เชคเชฎเซ เชเชฎเซเชชเชพเชเชฒเชฐเชจเซ เชชเซเชเซเช เชซเซเชก เชเชฐเซ เชถเชเชถเซ เชจเชนเซเช. เช เซเช เชเซ, เชเซเช เช เชญเชพเชทเชพ เชเชพเชฃเซ เชเซ เชคเซเชฎเชจเชพ เชฎเชพเชเซ เช เชเซเช เชฐเชนเชธเซเชฏ เชจเชฅเซ. เช เชชเซเชเซเชเซ เชเซ:
- เชจเซเชเชตเชฐเซเช เชธเชเชเชพเชฐ (เชธเชฐเซเชตเชฐ, เชเซเชฒเชพเชฏเชเช, เชชเซเชฐเซเชเซเชเซเชฒ)
- เชธเชเชเซเชฐเชนเชฟเชค เช เชจเซ เชชเซเชฐเชธเชพเชฐเชฟเชค เชกเซเชเชพเชจเซเช เชฎเชพเชณเชเซเช (เชฌเซเชฒเซเช, เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจ)
- เชกเซเชเชพเชฌเซเช (เชฌเซเชฒเซเชเชเซเชจ)
- เชธเชฐเซเชตเชธเชเชฎเชคเชฟ
- เชธเซเชเซเชเซเชก เชตเชฐเซเชเซเชฏเซเช เชฒ เชฎเชถเซเชจ (xvm)
- เชธเชนเชพเชฏเช (เชเซเชฐเชฟเชชเซเชเซ, เชชเซเชฐเชเชพเชฐเซ) เชนเชฎเชฃเชพเช เชฎเชพเชเซ เชเชเชฒเซเช เช เชเซ.
เช เชเช เชถเซเชเซเชทเชฃเชฟเช เชธเชเชธเซเชเชฐเชฃ เชเซ, เชคเซเชฎเชพเช เชเชเชคเชฐ-เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพ เช เชจเซ เชเซเชเชฒเชพเช เชชเซเชฐเชพเชฏเซเชเชฟเช เชเชเชเซเชจเซ เช เชญเชพเชต เชเซ, เชชเชฐเชเชคเซ เชฎเชพเชณเชเซเช เชคเซเชจเชพ เชชเชฐ เชตเชฟเชเชพเชธ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชฐเชนเซเชฏเซเช เชเซ เชคเซเชจเซ เช เชจเซเชฐเซเชช เชเซ. เชเซ เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชเชฟเชชเซเชชเชฃเซเชเชฎเชพเช เชธเซเชเชจ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชเชเชชเชฃ เชนเซเชฏ, เชคเซ เชฎเชจเซ เชตเชงเซ เชตเชฟเชเชพเชธเชฎเชพเช เชคเซเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชตเชพเชฎเชพเช เชเชจเชเชฆ เชฅเชถเซ. เช เชจเซ เชนเชตเซ เชธเชฐเซเชตเชฐเชจเซ เชธเชฎเชเซเชคเซ เชฎเชพเชเซ เช เชจเซ เชชเซเชฐเซเชเซเชเซเชฒ.
เชเชพเชฒเซ เชชเชนเซเชฒเชพ เชธเชฐเซเชตเชฐ เชเซเชเช.
เชธเชฐเซเชตเชฐ เชธเชฌเชฐเซเชเชฟเชจ เชกเซเชเชพ เชธเชฐเซเชตเชฐ เชคเชฐเซเชเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ เชเซ เชชเซเชฐเซเชเซเชเซเชฒ เชชเซเชเซเชเชฎเชพเชเชฅเซ เชกเซเชเชพ เชธเซเชเซเชฐเชเซเชเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ TCP เชชเซเชฐเซเชเซเชเซเชฒเชจเซ เชเซเช เชชเชฐ เชเชพเชฒเซ เชเซ.
เชฐเซเชเชฟเชจ เชจเซเชเซเชจเชพ เชชเซเชเซเชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ: เชธเชฐเซเชตเชฐ, เชชเซเชฐเซเชเซเชเซเชฒ, เชชเซเชฐเชเชพเชฐเซ. เชชเซเชเซเชเชฎเชพเช เช tcp_server.go เชฎเชพเชนเชฟเชคเซ เชฎเชพเชณเชเซเช เชธเชฎเชพเชตเซ เชเซ เชธเซเชตเชพ เชเชชเซ เชเซ.
type Serve struct {
Port string
BufSize int
ST *types.Settings
}
เชคเซ เชจเซเชเซเชจเชพ เชชเชฐเชฟเชฎเชพเชฃเซเชจเซ เชธเซเชตเซเชเชพเชฐเซ เชถเชเซ เชเซ:
- เชจเซเชเชตเชฐเซเช เชชเซเชฐเซเช เชเซเชจเชพ เชฆเซเชตเชพเชฐเชพ เชกเซเชเชพเชจเซ เชเชช-เชฒเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ
- JSON เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชธเชฐเซเชตเชฐ เชเซเช เชตเชฃเซ เชซเชพเชเชฒ
- เชกเซเชฌเช เชฎเซเชก (เชเชพเชจเชเซ เชฌเซเชฒเซเชเชเซเชจ) เชฎเชพเช เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชซเซเชฒเซเช เชเชฐเซ
เชชเซเชฐเชเชคเชฟ:
- JSON เชซเชพเชเชฒเชฎเชพเชเชฅเซ เชเซเช เชตเชฃเซ เชตเชพเชเชเซ เชเซ
- เชกเซเชฌเช เชฎเซเชก เชซเซเชฒเซเช เชเซเช เชเชฐเซเชฒ เชเซ: เชเซ เชคเซ เชธเซเช เชเชฐเซเชฒ เชนเซเชฏ, เชคเซ เชจเซเชเชตเชฐเซเช เชธเชฟเชเชเซเชฐเชจเชพเชเชเซเชถเชจ เชถเซเชกเซเชฏเซเชฒเชฐ เชฒเซเชเช เชฅเชฏเซเชฒ เชจเชฅเซ เช เชจเซ เชฌเซเชฒเซเชเชเซเชจ เชฒเซเชก เชฅเชฏเซเชฒ เชจเชฅเซ
- เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชกเซเชเชพ เชฎเชพเชณเชเซเช เชถเชฐเซ เชเชฐเชตเซเช เช เชจเซ เชธเชฐเซเชตเชฐ เชถเชฐเซ เชเชฐเชตเซเช
เชธเชฐเซเชตเชฐ
- เชชเซเชฐเซเชเซเชเซเชฒ เช เชจเซเชธเชพเชฐ TCP เชธเชฐเซเชตเชฐ เช เชจเซ เชจเซเชเชตเชฐเซเช เชเซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพเชจเซเช เชฒเซเชจเซเชเชฟเชเช เชเชฐเซ เชเซ.
- เชคเซเชฎเชพเช เชธเชฐเซเชต เชกเซเชเชพ เชธเซเชเซเชฐเชเซเชเชฐ เชเซ เชเซเชฎเชพเช เชชเซเชฐเซเช เชจเชเชฌเชฐ, เชฌเชซเชฐ เชธเชพเชเช เช เชจเซ เชธเซเชเซเชฐเชเซเชเชฐ เชฎเชพเชเซ เชชเซเชเชจเซเชเชฐ เชนเซเชฏ เชเซ. เชชเซเชฐเชเชพเชฐเซ.เชธเซเชเชฟเชเชเซเชธ
- เชฐเชจ เชชเชฆเซเชงเชคเชฟ เชจเซเชเชตเชฐเซเช เชเซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพ เชถเชฐเซ เชเชฐเซ เชเซ (เชเชชเซเชฒ เชชเซเชฐเซเช เชชเชฐ เชเชจเชเชฎเชฟเชเช เชเชจเซเชเซเชถเชจเซเชธ เชฎเชพเชเซ เชธเชพเชเชญเชณเชตเซเช, เชเซเชฏเชพเชฐเซ เชจเชตเซเช เชเชจเซเชเซเชถเชจ เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เชเซ, เชคเซเชฏเชพเชฐเซ เชคเซเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชจเชตเชพ เชฅเซเชฐเซเชกเชฎเชพเช เชเชพเชจเชเซ เชนเซเชจเซเชกเชฒ เชชเชฆเซเชงเชคเชฟเชฎเชพเช เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ)
- ะ เชนเซเชจเซเชกเชฒ เชเชจเซเชเซเชถเชจเชฎเชพเชเชฅเซ เชกเซเชเชพ เชฌเชซเชฐเชฎเชพเช เชตเชพเชเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชธเซเชเซเชฐเชฟเชเช เชฐเชเซเชเชคเชฎเชพเช เชฐเซเชชเชพเชเชคเชฐเชฟเชค เชฅเชพเชฏ เชเซ เช เชจเซ เชคเซเชจเซ เชชเชธเชพเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชชเซเชฐเซเชเซเชเซเชฒ.เชชเชธเชเชฆเชเซ
- เชชเซเชฐเซเชเซเชเซเชฒ.เชชเชธเชเชฆเชเซ เชชเชฐเชค เชเชฐเซ เชเซ เชชเชฐเชฟเชฃเชพเชฎ เช เชฅเชตเชพ เชญเซเชฒเชจเซเช เชเชพเชฐเชฃ เชฌเชจเซ เชเซ. เชชเชฐเชฟเชฃเชพเชฎ เชชเชเซ เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค protocol.Interpreteเชเซ เชชเชฐเชค เชเชฐเซ เชเซ intrpr - เชชเซเชฐเชเชพเชฐเชจเซ เชชเชฆเชพเชฐเซเชฅ เช เชฐเซเชฅเชเชเชจ เชกเซเชเชพ, เช เชฅเชตเชพ เชชเชธเชเชฆเชเซ เชชเชฐเชฟเชฃเชพเชฎเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพเชฎเชพเช เชญเซเชฒเชจเซเช เชเชพเชฐเชฃ เชฌเชจเซ เชเซ
- เชชเชเซ เชธเซเชตเซเช เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ intrpr.commands[0] เชเซเชฎเชพเชเชฅเซ เชเช เชคเชชเชพเชธเซ เชเซ: เชชเชฐเชฟเชฃเชพเชฎ, inv, เชญเซเชฒ เช เชจเซ เชเช เชตเชฟเชญเชพเช เชเซ เชฎเซเชณเชญเซเชค
- เชตเชฟเชญเชพเชเชฎเชพเช เชชเชฐเชฟเชฃเชพเชฎ เชธเซเชตเซเช เชฎเซเชฒเซเชฏ เชฆเซเชตเชพเชฐเชพ เชเซเชตเชพ เชฎเชณเซ เชเซ intrpr.commands[1] เชเซ เชฎเซเชฒเซเชฏเซเชจเซ เชคเชชเชพเชธ เชเชฐเซ เชเซ เชฌเชซเชฐ เชฒเชเชฌเชพเช ะธ เชเชตเซเชคเซเชคเชฟ (เชฆเชฐเซเช เชเชฟเชธเซเชธเชพเชฎเชพเช เช เชจเซเชฐเซเชช เชเชพเชฐเซเชฏ เชเชนเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ)
เชเชพเชฐเซเชฏเซ GetVersion ะธ เชฌเชซเชฐ เชฒเชเชฌเชพเช เชซเชพเชเชฒเชฎเชพเช เชเซ srvlib.go เชธเชฐเซเชตเชฐ เชชเซเชเซเช
GetVersion(conn net.Conn, version string)
เชคเซ เชซเชเซเชค เชเชจเซเชธเซเชฒ เชชเชฐ เชเชพเชชเซ เชเซ เช เชจเซ เชชเซเชฐเชพเชฎเซเชเชฐเชฎเชพเช เชชเชธเชพเชฐ เชเชฐเซเชฒ เชธเชเชธเซเชเชฐเชฃ เชเซเชฒเชพเชฏเชเชเชจเซ เชฎเซเชเชฒเซ เชเซ:
conn.Write([]byte("result:" + version))
.
เชเชพเชฐเซเชฏ
BufferLength(conn net.Conn, intrpr *protocol.InterpreteData)
เชจเซเชเซ เชชเซเชฐเชฎเชพเชฃเซ เชฌเซเชฒเซเช, เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจ เช เชฅเชตเชพ เช เชจเซเชฏ เชเซเชเซเชเชธ เชกเซเชเชพ เชฒเซเชก เชเชฐเซ เชเซ:
- เชชเซเชฐเซเชเซเชเซเชฒเชฎเชพเช เชเชฒเซเชฒเซเชเชฟเชค เชกเซเชเชพเชจเชพ เชชเซเชฐเชเชพเชฐเชจเซ เชเชจเซเชธเซเชฒ เชชเชฐ เชเชพเชชเซ เชเซ เชเซเชจเซ เชธเซเชตเซเชเชพเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ:
fmt.Println("DataType:", intrpr.Commands[2])
- เชฎเซเชฒเซเชฏ เชตเชพเชเชเซ เชเซ เชถเชฐเซเชฐ เชธเชเชเซเชฏเชพเชคเซเชฎเช เชเชฒ เชฎเชพเชเซ buf_len
- เชฌเชซเชฐ เชฌเชจเชพเชตเซ เชเซ newbuf เชเชฒเซเชฒเซเชเชฟเชค เชเชฆ:
make([]byte, buf_len)
- เชเช เช เซเช เชเชตเชพเชฌ เชฎเซเชเชฒเซ เชเซ:
conn.Write([]byte("result:ok"))
- เชฐเซเชก เชธเซเชเซเชฐเซเชฎเชฎเชพเชเชฅเซ เชฌเชซเชฐเชจเซ เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เชญเชฐเซ เชเซ:
io.ReadFull(conn, newbuf)
.
- เชเชจเซเชธเซเชฒ เชชเชฐ เชฌเชซเชฐเชจเซ เชธเชพเชฎเชเซเชฐเซเช เชเชพเชชเซ เชเซ
fmt.Println(string(newbuf))
เช เชจเซ เชตเชพเชเชเซเชฒเชพ เชฌเชพเชเชเซเชธเชจเซ เชธเชเชเซเชฏเชพ
fmt.Println("Bytes length:", n)
- เชเช เช เซเช เชเชตเชพเชฌ เชฎเซเชเชฒเซ เชเซ:
conn.Write([]byte("result:ok"))
เชธเชฐเซเชตเชฐ เชชเซเชเซเชเชฎเชพเชเชฅเซ เชชเชฆเซเชงเชคเชฟเช เชชเซเชเซเชเชฎเชพเชเชฅเซ เชเชพเชฐเซเชฏเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเซเชฐเชพเชชเซเชค เชกเซเชเชพ เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพ เชฎเชพเชเซ เชเซเช เชตเซเชฒ เชเซ เชชเซเชฐเซเชเซเชเซเชฒ.
เชชเซเชฐเซเชเซเชเซเชฒ
เชชเซเชฐเซเชเซเชเซเชฒ เชเช เชฎเชพเชงเซเชฏเชฎ เชคเชฐเซเชเซ เชธเซเชตเชพ เชเชชเซ เชเซ เชเซ เชจเซเชเชตเชฐเซเช เชตเชฟเชจเชฟเชฎเชฏเชฎเชพเช เชกเซเชเชพเชจเซเช เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเชคเซเชต เชเชฐเซ เชเซ.
เชชเชธเชเชฆเชเซ(str เชธเซเชเซเชฐเชฟเชเช) (เชธเซเชเซเชฐเชฟเชเช, เชเชฐเชฐ) เชธเชฐเซเชตเชฐ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชพเชชเซเชค เชกเซเชเชพเชจเซ เชชเซเชฐเชพเชฅเชฎเชฟเช เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชเซ, เชเชจเชชเซเช เชคเชฐเซเชเซ เชกเซเชเชพเชจเซ เชธเซเชเซเชฐเชฟเชเช เชฐเชเซเชเชค เชฎเซเชณเชตเซ เชเซ เช เชจเซ เชคเซเชจเชพ เชฎเชพเชเซ เชคเซเชฏเชพเชฐ เชเชฐเซเชฒ เชธเซเชเซเชฐเชฟเชเช เชชเชฐเชค เชเชฐเซ เชเซ เชฆเซเชญเชพเชทเชฟเชฏเชพ:
- เชเชจเชชเซเช เชธเซเชเซเชฐเชฟเชเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฎเชพเชฅเชพ เช เชจเซ เชถเชฐเซเชฐเชฎเชพเช เชตเชฟเชญเชพเชเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ ReqParseN2(str)
- เชนเซเชกเชจเซ เชคเชคเซเชตเซเชฎเชพเช เชตเชฟเชญเชพเชเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช เชจเซ ReqParseHead(เชนเซเชก) เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชฎเชพเชจเซเชก เชธเซเชฒเชพเชเชธเชฎเชพเช เชฎเซเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
- ะ เชธเซเชตเชฟเช เชเชฐเซ(เชเชฆเซเชถเซ[0]) เชชเซเชฐเชพเชชเซเชค เชเชฆเซเชถ เชชเชธเชเชฆ เชเชฐเซ (cmd, เชเซ, เชธเชฐเชจเชพเชฎเซเช เช เชฅเชตเชพ เชตเชฟเชญเชพเช เชเซเชฐเชฟเชเชฐ เชฅเชพเชฏ เชเซ เชฎเซเชณเชญเซเชค)
- cmd เชฎเชพเช 2 เชเชฆเซเชถเซ เชคเชชเชพเชธเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชธเซเชตเซเช(เชเชฆเซเชถเซ[1]) โ เชฒเชเชฌเชพเช ะธ เชชเซเชฐเชพเชชเซเชคเชฟ.
- เชฒเชเชฌเชพเช เชกเซเชเชพ เชชเซเชฐเชเชพเชฐ เชคเชชเชพเชธเซ เชเซ เชเชฆเซเชถเซ[2] เช เชจเซ เชคเซเชจเซ เชธเชพเชเชตเซ เชเซ เชกเซเชเชพเชเชช
- เชคเซ เชคเชชเชพเชธเซ เชเซ เชถเชฐเซเชฐ เชธเซเชเซเชฐเชฟเชเช เชฎเซเชฒเซเชฏ เชงเชฐเชพเชตเซ เชเซ
len(body) < 1
- เชชเซเชฐเชคเชฟเชญเชพเชต เชธเซเชเซเชฐเชฟเชเช เชชเชฐเชค เชเชฐเซ เชเซ:
"result:bufferlength:" + datatype + "/" + body
- เชชเซเชฐเชพเชชเซเชคเชฟ เชธเซเชเซเชฐเชฟเชเช เชชเชฐเชค เชเชฐเซ เชเซ
return "result:version/auto"
เชฆเซเชญเชพเชทเชฟเชฏเชพ
InterpreteData เชฎเชพเชณเชเซเช เชงเชฐเชพเชตเซ เชเซ เช เชจเซ เชคเซเชฎเชพเชเชฅเซ เชชเชฐเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฒ เชกเซเชเชพเชจเซ เชเซเชฃ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชเซ เชเซเชเชธ เชถเชฌเซเชฆเชฎเชพเชณเชพเช เช เชจเซ เชชเชฆเชพเชฐเซเชฅ เชฐเชเชจเชพ เช เชฐเซเชฅเชเชเชจ เชกเซเชเชพ.
type InterpreteData struct {
Head string
Commands []string
Body string
IsErr bool
ErrCode int
ErrMessage string
}
เชเชพเชฐเซเชฏ
Interprete(str string) (*InterpreteData, error)
เชถเชฌเซเชฆเชฎเชพเชณเชพ เชธเซเชตเซเชเชพเชฐเซ เชเซ เชชเชฐเชฟเชฃเชพเชฎ เช เชจเซ เชเชฌเซเชเซเชเซเชเชจเซ เชธเชเชฆเชฐเซเชญ เชฌเชจเชพเชตเซ เชเซ เช เชจเซ เชชเชฐเชค เชเชฐเซ เชเซ เช เชฐเซเชฅเชเชเชจ เชกเซเชเชพ.
เชชเซเชฐเชเชคเชฟ:
- เชคเซเชตเซ เช เชฐเซเชคเซ เชเซเชเชธ เชฎเชฆเชฆเชฅเซ เชฎเชพเชฅเชพ เช เชจเซ เชถเชฐเซเชฐ เชเชพเชขเชตเชพเชฎเชพเช เชเชตเซ เชเซ ReqParseN2(str)
- เชฎเชพเชฅเชพเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชคเชคเซเชตเซเชฎเชพเช เชตเชฟเชญเชพเชเชฟเชค เชฅเชพเชฏ เชเซ ReqParseHead(เชนเซเชก)
- เชเชฌเซเชเซเชเซเช เชชเซเชฐเชพเชฐเชเชญ เชฅเชฏเซเชฒ เชเซ เช เชฐเซเชฅเชเชเชจ เชกเซเชเชพ เช เชจเซ เชคเซเชจเชพ เชชเชฐ เชเช เชจเชฟเชฐเซเชฆเซเชถเช เชชเชฐเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ:
res := &InterpreteData{
Head: head,
Commands: commands,
Body: body,
}
return res, nil
เช เชชเชฆเชพเชฐเซเชฅเชจเซ เชเชชเชฏเซเช เชฅเชพเชฏ เชเซ เชธเชฐเซเชตเชฐ.เชเซ เชฎเซเชเซเชฏ เชชเซเชเซเช.
เชเซเชฒเชพเชเชจเซเช
เชเซเชฒเชพเชฏเชเช เชชเซเชเซเชเชฎเชพเช เชเชพเชฐเซเชฏเซ เชเซ TCPConnect ะธ TCPresponseData.
เชเชพเชฐเซเชฏ
TCPConnect(s *types.Settings, data []byte, payload []byte)
เชเชจเชพ เชเซเชตเซเช เชเชพเชฎ เชเชฐเซ เชเซ:
- เชชเชพเชธ เชเชฐเซเชฒ เชธเซเชเชฟเชเชเซเชธ เชเชฌเซเชเซเชเซเชเชฎเชพเช เชเชฒเซเชฒเซเชเชฟเชค เชเชจเซเชเซเชถเชจ เชธเชพเชฅเซ เชเชจเซเชเซเชถเชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ
net.Dial("tcp", s.Host + ":" + s.Port)
- เชกเซเชเชพ เชชเซเชฐเชพเชฎเซเชเชฐเชฎเชพเช เชชเชธเชพเชฐ เชฅเชฏเซเชฒ เชกเซเชเชพ เชชเซเชฐเชธเชพเชฐเชฟเชค เชฅเชพเชฏ เชเซ:
conn.Write(data)
- เชเชตเชพเชฌ เชตเชพเชเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ
resp, n, _ := TCPResponseData(conn, s.BufSize)
เช เชจเซ เชเชจเซเชธเซเชฒ เชชเชฐ เชฎเซเชฆเซเชฐเชฟเชค
fmt.Println(string(resp[:n]))
- เชเซ เชเซเชฐเชพเชจเซเชธเชซเชฐ เชฅเชพเชฏ เชเซ เชชเซเชฒเซเชก เชชเชเซ เชคเซเชจเซ เชชเชธเชพเชฐ เชเชฐเซ เชเซ
conn.Write(payload)
เช เชจเซ เชธเชฐเซเชตเชฐ เชชเซเชฐเชคเชฟเชธเชพเชฆ เชชเชฃ เชตเชพเชเชเซ เชเซ, เชคเซเชจเซ เชเชจเซเชธเซเชฒ เชชเชฐ เชเชพเชชเซ เชเซ
เชเชพเชฐเซเชฏ
TCPResponseData(conn net.Conn, bufsiz int) ([]byte, int, error)
เชเชฒเซเชฒเซเชเชฟเชค เชเชฆเชจเซเช เชฌเชซเชฐ เชฌเชจเชพเชตเซ เชเซ, เชคเซเชฏเชพเช เชธเชฐเซเชตเชฐ เชชเซเชฐเชคเชฟเชธเชพเชฆ เชตเชพเชเชเซ เชเซ เช เชจเซ เช เชฌเชซเชฐ เช เชจเซ เชตเชพเชเชเซเชฒเชพ เชฌเชพเชเชเซเชธเชจเซ เชธเชเชเซเชฏเชพ, เชคเซเชฎเช เชเช เชเชฐเชฐ เชเชฌเซเชเซเชเซเช เชชเชฐเชค เชเชฐเซ เชเซ.
เชเซเชฒเชพเชฏเชจเซเช เชธเชฌเชฐเซเชเชฟเชจ
เชจเซเชก เชธเชฐเซเชตเชฐเซเชธ เชชเชฐ เชเชฆเซเชถเซ เชฎเซเชเชฒเชตเชพ เชคเซเชฎเช เชธเชเชเซเชทเชฟเชชเซเชค เชเชเชเชกเชพ เช เชจเซ เชชเชฐเซเชเซเชทเชฃ เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ เชธเซเชตเชพ เชเชชเซ เชเซ.
เชจเซเชเซเชจเชพ เชชเชฐเชฟเชฎเชพเชฃเซ เชธเซเชตเซเชเชพเชฐเซ เชถเชเซ เชเซ: JSON เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒ, เชธเซเชเซเชฐเชฟเชเช เชคเชฐเซเชเซ เชธเชฐเซเชตเชฐเชจเซ เชฎเซเชเชฒเชตเชพ เชฎเชพเชเซเชจเซ เชกเซเชเชพ, เชชเซเชฒเซเชก เชชเชฐ เชฎเซเชเชฒเชตเชพ เชฎเชพเชเซ เชซเชพเชเชฒเชจเซ เชชเชพเชฅ, เชจเซเชก เชถเซเชกเซเชฏเซเชฒเชฐ เชเชฎเซเชฏเซเชฒเซเชถเชจ เชซเซเชฒเซเช, เชเชเชเชกเชพเชเซเชฏ เชฎเซเชฒเซเชฏ เชคเชฐเซเชเซ เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชกเซเชเชพเชจเซ เชชเซเชฐเชเชพเชฐ.
- เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชฎเซเชณเชตเซ เชฐเชนเซเชฏเชพ เชเซเช
st := types.ParseConfig(*config)
- เชเซ เชเชฎเซ เชงเซเชตเช เชชเชธเชพเชฐ เชฅเชพเชฏ เชเซ, เชคเซ เชคเซ เชถเชฐเซ เชฅเชพเชฏ เชเซ เชถเซเชกเซเชฏเซเชฒเชฐ
- เชเซ เชซเชพเชเชฒเชจเซ เชฎเชพเชฐเซเช เชฆเชฐเซเชถเชพเชตเชคเซ f เชซเซเชฒเซเช เชชเซเชฐเซ เชชเชพเชกเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซ เช
เชฎเซ เชคเซเชจเซ เชกเซเชเชพ เชฒเซเชก เชเชฐเซเช เชเซเช fdb เช
เชจเซ เชธเชพเชฎเชเซเชฐเซ เชธเชฐเซเชตเชฐ เชชเชฐ เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเซ เชเซ
client.TCPConnect(st, []byte(CMD_BUFFER_LENGTH + ":" + strconv.Itoa(*t) + "/" + strconv.Itoa(fdblen)), fdb)
- เชเซ เชซเชพเชเชฒ เชเชฒเซเชฒเซเชเชฟเชค เชจเชฅเซ, เชคเซ เชงเซเชตเชเชฎเชพเชเชฅเซ เชกเซเชเชพ เชเชพเชฒเซ เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเซ เชเซ -d:
client.TCPConnect(st, []byte(*data), nil)
เช เชฌเชงเซเช เชชเซเชฐเซเชเซเชเซเชฒเชจเซเช เชฎเชพเชณเชเซเช เชฆเชฐเซเชถเชพเชตเชคเซ เชเช เชธเชฐเชณ เชฐเชเซเชเชค เชเซ. เชตเชฟเชเชพเชธ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชคเซเชจเซ เชฐเชเชจเชพเชฎเชพเช เชเชฐเซเชฐเซ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชฌเซเชเชพ เชญเชพเชเชฎเชพเช เชนเซเช เชฌเซเชฒเซเชเซเชธ เช
เชจเซ เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจเซเชธ เชฎเชพเชเซ เชกเซเชเชพ เชธเซเชเซเชฐเชเซเชเชฐเซเชธ เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซเชถ, 3 เชฎเชพเช JavaScript เชฅเซ เชเชจเซเชเซเช เชเชฐเชตเชพ เชฎเชพเชเซ WebSocket เชธเชฐเซเชตเชฐ เชตเชฟเชถเซ, 4 เชฎเชพเช เชนเซเช เชธเชฟเชเชเซเชฐเซเชจเชพเชเชเซเชถเชจ เชถเซเชกเซเชฏเซเชฒเชฐ เชเซเชเชถ, เชชเชเซ เชเช เชธเซเชเซเช เชฎเชถเซเชจ เชเซ เชเชจเชชเซเชเซเชธ เช
เชจเซ เชเชเชเชชเซเช, เชเซเชฐเชฟเชชเซเชเซเชเซเชฐเชพเชซเซ เช
เชจเซ เชเชเชเชชเซเชเชฎเชพเชเชฅเซ เชฌเชพเชเชเชเซเชก เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชเซ. เชเชเชเชชเซเช เชฎเชพเชเซ เชชเซเชฒ.
เชธเซเชฐเซเชธ: www.habr.com