แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ Windows แƒ™แƒšแƒ˜แƒ”แƒœแƒข-แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—, แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 02

แƒ•แƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒ— แƒกแƒขแƒแƒขแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒ”แƒ แƒ˜แƒ˜แƒก แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒกแƒ”แƒ แƒ˜แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ”แƒซแƒฆแƒ•แƒœแƒ”แƒ‘แƒ Windows-แƒ˜แƒก แƒ™แƒแƒœแƒกแƒแƒšแƒ˜แƒก แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒžแƒ”แƒ แƒกแƒแƒœแƒแƒšแƒฃแƒ  แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒแƒก, แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒแƒ  แƒจแƒ”แƒ•แƒ”แƒฎแƒแƒ— TFTP (Trivial File Transfer Protocol) - แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ˜แƒก แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒก.

แƒ แƒแƒ’แƒแƒ แƒช แƒ‘แƒแƒšแƒ แƒ“แƒ แƒแƒก, แƒ›แƒแƒ“แƒ˜แƒ— แƒ›แƒแƒ™แƒšแƒ”แƒ“ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— แƒ—แƒ”แƒแƒ แƒ˜แƒแƒ–แƒ”, แƒ•แƒœแƒแƒฎแƒแƒ— แƒ™แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒก แƒ“แƒ แƒ’แƒแƒ•แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒ—. แƒ›แƒ”แƒขแƒ˜ แƒ“แƒ”แƒขแƒแƒšแƒ˜ - แƒญแƒ แƒ˜แƒšแƒ˜แƒก แƒฅแƒ•แƒ”แƒจ

แƒ›แƒ” แƒแƒ  แƒ•แƒแƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘-แƒžแƒแƒกแƒขแƒ˜แƒก แƒกแƒแƒชแƒœแƒแƒ‘แƒแƒ แƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ‘แƒ›แƒฃแƒšแƒ”แƒ‘แƒ˜ แƒขแƒ แƒแƒ“แƒ˜แƒชแƒ˜แƒฃแƒšแƒแƒ“ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ‘แƒแƒšแƒแƒก, แƒ›แƒ” แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ•แƒ˜แƒขแƒงแƒ•แƒ˜, แƒ แƒแƒ› แƒ›แƒ˜แƒกแƒ˜ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ TFTP แƒแƒ แƒ˜แƒก FTP แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒ. แƒฌแƒแƒจแƒšแƒ˜แƒšแƒ˜แƒ แƒ“แƒ แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜ แƒแƒ แƒแƒคแƒ”แƒ แƒ˜แƒ แƒแƒฅ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ“แƒ. แƒแƒ›แƒแƒกแƒ—แƒแƒœ, แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ แƒชแƒแƒขแƒ แƒฃแƒคแƒ แƒ แƒ”แƒšแƒ”แƒ’แƒแƒœแƒขแƒฃแƒ แƒ˜ แƒ“แƒ แƒแƒ“แƒแƒžแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒแƒก แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒแƒ›แƒŸแƒแƒ›แƒ˜แƒœแƒ“แƒ”แƒš แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒ”แƒ‘แƒ—แƒแƒœ, แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜ แƒแƒ“แƒœแƒแƒ• แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ - แƒ”แƒก แƒแƒ  แƒชแƒ•แƒšแƒ˜แƒก แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒ”แƒ‘แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜, IMHO, แƒชแƒแƒขแƒ แƒฃแƒคแƒ แƒ แƒšแƒแƒ’แƒ˜แƒ™แƒฃแƒ แƒ˜ แƒฎแƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒก FTP แƒ“แƒ TFTP แƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒแƒกแƒžแƒ”แƒฅแƒขแƒ”แƒ‘แƒก.

แƒ™แƒ”แƒ แƒซแƒแƒ“, แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜ แƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒก แƒ“แƒ แƒžแƒแƒ แƒขแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒช แƒฆแƒ˜แƒแƒ แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ TFTP (แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒš แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ—แƒแƒœ แƒจแƒ”แƒฃแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ›แƒ˜แƒ–แƒแƒœแƒจแƒ”แƒฌแƒแƒœแƒ˜แƒšแƒแƒ“ แƒ›แƒ˜แƒ•แƒ˜แƒฉแƒœแƒ˜แƒ” แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒžแƒแƒ แƒขแƒ˜แƒก แƒแƒ แƒฉแƒ”แƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ), แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช แƒฎแƒ“แƒ”แƒ‘แƒ แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜, แƒ แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“แƒแƒช แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒแƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ - แƒ›แƒ˜แƒ˜แƒฆแƒแƒก แƒแƒœ แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒก, แƒ›แƒ˜แƒ˜แƒฆแƒแƒก แƒแƒœ แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒแƒก แƒคแƒแƒ˜แƒšแƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”. แƒงแƒ•แƒ”แƒšแƒ แƒคแƒแƒ˜แƒšแƒ˜ แƒ˜แƒ’แƒ–แƒแƒ•แƒœแƒ”แƒ‘แƒ แƒแƒ แƒแƒ‘แƒ˜แƒ— แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ แƒšแƒแƒ’แƒ˜แƒ™แƒ˜แƒก แƒ’แƒแƒกแƒแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒ‘แƒšแƒแƒ“.

แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒ›แƒ” แƒขแƒ แƒแƒ“แƒ˜แƒชแƒ˜แƒฃแƒšแƒแƒ“ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ“แƒ˜ 4 แƒ™แƒšแƒแƒกแƒก:

  • TFTPClient
  • TFTPS แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜
  • TFTPClientTester
  • TFTPServerTester

แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒ› แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒ” แƒ›แƒแƒ— แƒแƒ  แƒ’แƒแƒ•แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ™แƒแƒ“แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒแƒชแƒแƒ•แƒจแƒ˜; แƒ›แƒ˜แƒกแƒ˜ แƒ‘แƒ›แƒฃแƒšแƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ‘แƒแƒšแƒแƒก. แƒแƒฎแƒšแƒ แƒ›แƒ” แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ• แƒ›แƒ—แƒแƒ•แƒแƒ  แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒก.

TFTPClient

แƒแƒ› แƒ™แƒšแƒแƒกแƒ˜แƒก แƒแƒ›แƒแƒชแƒแƒœแƒแƒ แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ  แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ แƒ›แƒ˜แƒกแƒ˜ ip แƒ“แƒ แƒžแƒแƒ แƒขแƒ˜แƒก แƒœแƒแƒ›แƒ แƒ˜แƒ—, แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒœแƒแƒ™แƒแƒ“แƒ˜แƒ“แƒแƒœ (แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ™แƒšแƒแƒ•แƒ˜แƒแƒขแƒฃแƒ แƒ), แƒ’แƒแƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒก, แƒ’แƒแƒ“แƒแƒ˜แƒขแƒแƒœแƒแƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒ“แƒ, แƒ˜แƒ›แƒ˜แƒกแƒ“แƒ แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒ—แƒฃ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒแƒ— แƒแƒœ แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒคแƒแƒ˜แƒšแƒ˜, แƒ’แƒแƒ“แƒแƒ˜แƒขแƒแƒœแƒแƒ— แƒแƒœ แƒ›แƒ˜แƒ˜แƒฆแƒแƒ—.

แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ—แƒแƒœ แƒ“แƒแƒกแƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒšแƒแƒ“ แƒ“แƒ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒœแƒแƒ™แƒแƒ“แƒ˜แƒ“แƒแƒœ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒšแƒแƒ“แƒ˜แƒœแƒจแƒ˜ แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ“แƒ˜ แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ. แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ แƒ˜แƒ’แƒ˜ แƒ’แƒšแƒแƒ‘แƒแƒšแƒฃแƒ แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒฅ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ—, แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒกแƒ แƒฃแƒš แƒขแƒ”แƒฅแƒกแƒขแƒจแƒ˜. แƒ›แƒแƒ—แƒ˜ แƒขแƒ แƒ˜แƒ•แƒ˜แƒแƒšแƒฃแƒ แƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ แƒแƒ  แƒ•แƒแƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘ แƒ›แƒแƒ—, แƒ แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒ แƒแƒ  แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒก.

 public void run(String ip, int port)
    {
        this.ip = ip;
        this.port = port;
        try {
            inicialization();
            Scanner keyboard = new Scanner(System.in);
            while (isRunning) {
                getAndParseInput(keyboard);
                sendCommand();
                selector();
                }
            }
        catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— แƒ™แƒแƒ“แƒ˜แƒก แƒแƒ› แƒ‘แƒšแƒแƒ™แƒจแƒ˜ แƒ›แƒแƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒš แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ–แƒ”:

แƒแƒฅ แƒคแƒแƒ˜แƒšแƒ˜ แƒ˜แƒ’แƒ–แƒแƒ•แƒœแƒ”แƒ‘แƒ - แƒกแƒ™แƒแƒœแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒฌแƒแƒ แƒ›แƒแƒ’แƒ˜แƒ“แƒ’แƒ”แƒœแƒ— แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒจแƒ˜แƒ’แƒ—แƒแƒ•แƒกแƒก แƒ‘แƒแƒ˜แƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒกแƒ˜แƒ•แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒกแƒแƒ—แƒ˜แƒ—แƒแƒแƒ“ แƒ•แƒฌแƒ”แƒ แƒ— แƒกแƒแƒ™แƒ”แƒขแƒจแƒ˜, แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช แƒ•แƒฎแƒฃแƒ แƒแƒ•แƒ— แƒ“แƒ แƒ˜แƒกแƒ”แƒ• แƒ•แƒฎแƒกแƒœแƒ˜แƒ— (แƒแƒ แƒ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒแƒจแƒ™แƒแƒ แƒ แƒ’แƒแƒ›แƒแƒกแƒแƒ•แƒแƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒšแƒ”แƒ‘แƒแƒก), แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ— แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒแƒก แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

private  void put(String sourcePath, String destPath)
    {

        File src = new File(sourcePath);
        try {

            InputStream scanner = new FileInputStream(src);
            byte[] bytes = scanner.readAllBytes();
            for (byte b : bytes)
                sout.write(b);
            sout.close();
            inicialization();
            System.out.println("nDonen");
            }

        catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

แƒ™แƒแƒ“แƒ˜แƒก แƒ”แƒก แƒคแƒ แƒแƒ’แƒ›แƒ”แƒœแƒขแƒ˜ แƒแƒฆแƒฌแƒ”แƒ แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒ“แƒแƒœ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒซแƒ˜แƒ”แƒ‘แƒแƒก. แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ˜แƒกแƒ”แƒ• แƒขแƒ แƒ˜แƒ•แƒ˜แƒแƒšแƒฃแƒ แƒ˜แƒ, แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ™แƒแƒ“แƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ‘แƒšแƒแƒ™แƒ˜แƒ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ. แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ’แƒแƒ˜แƒ’แƒแƒ— แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜ แƒ‘แƒแƒ˜แƒขแƒ˜ แƒฃแƒœแƒ“แƒ แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒกแƒแƒ™แƒ”แƒขแƒ˜แƒ“แƒแƒœ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ˜แƒชแƒแƒ“แƒ”แƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒก แƒ˜แƒฌแƒแƒœแƒ˜แƒก แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒคแƒแƒ˜แƒšแƒ˜. แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ–แƒแƒ›แƒ แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒ แƒซแƒ”แƒšแƒ˜ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒแƒฅ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ 4 แƒ‘แƒแƒ˜แƒขแƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒจแƒ˜ แƒ’แƒแƒ แƒ“แƒแƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒ”แƒ แƒ— แƒ แƒ˜แƒชแƒฎแƒ•แƒแƒ“. แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ Java แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ, แƒ˜แƒก แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜แƒ SI-แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒก แƒฌแƒงแƒ•แƒ”แƒขแƒก แƒ›แƒ˜แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒก.

แƒ›แƒแƒจแƒ˜แƒœ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒขแƒ แƒ˜แƒ•แƒ˜แƒแƒšแƒฃแƒ แƒ˜แƒ - แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒ‘แƒแƒ˜แƒขแƒ”แƒ‘แƒ˜แƒก แƒชแƒœแƒแƒ‘แƒ˜แƒš แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒก แƒกแƒแƒ™แƒ”แƒขแƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒ•แƒฌแƒ”แƒ แƒ— แƒ›แƒแƒ— แƒคแƒแƒ˜แƒšแƒจแƒ˜, แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ— แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒแƒก.

   private void get(String sourcePath, String destPath){
        long sizeOfFile = 0;
        try {


            byte[] sizeBytes = new byte[Long.SIZE];
           for (int i =0; i< Long.SIZE/Byte.SIZE; i++)
           {
               sizeBytes[i] = (byte)sin.read();
               sizeOfFile*=256;
               sizeOfFile+=sizeBytes[i];
           }

           FileOutputStream writer = new FileOutputStream(new File(destPath));
           for (int i =0; i < sizeOfFile; i++)
           {
               writer.write(sin.read());
           }
           writer.close();
           System.out.println("nDONEn");
       }
       catch (Exception e){
            System.out.println(e.getMessage());
       }
    }

แƒ—แƒฃ แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒคแƒแƒœแƒฏแƒแƒ แƒแƒจแƒ˜ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒฎแƒ•แƒ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ, แƒ’แƒแƒ แƒ“แƒ get แƒแƒœ put-แƒ˜แƒกแƒ, แƒ’แƒแƒ›แƒแƒ˜แƒซแƒแƒฎแƒ”แƒ‘แƒ showErrorMessage แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒช แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก, แƒ แƒแƒ› แƒจแƒ”แƒงแƒ•แƒแƒœแƒ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ แƒ˜แƒงแƒ. แƒฌแƒ•แƒ แƒ˜แƒšแƒ›แƒแƒœแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ แƒแƒ  แƒ›แƒแƒ•แƒ˜แƒงแƒ•แƒแƒœ. แƒ แƒแƒ›แƒ“แƒ”แƒœแƒแƒ“แƒ›แƒ” แƒฃแƒคแƒ แƒ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒแƒ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒงแƒแƒคแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ. แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒกแƒจแƒ˜ แƒ’แƒแƒ“แƒแƒ•แƒชแƒ”แƒ›แƒ— แƒกแƒ™แƒแƒœแƒ”แƒ แƒก, แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒ•แƒ”แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ› แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒฎแƒแƒ–แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜แƒ แƒแƒ แƒ˜ แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒ— แƒ“แƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒก, แƒฌแƒงแƒแƒ แƒแƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒก แƒ“แƒ แƒ“แƒแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒก.

    private void getAndParseInput(Scanner scanner)
    {
        try {

            input = scanner.nextLine().split(" ");
            typeOfCommand = input[0];
            sourcePath = input[1];
            destPath = input[2];
        }
        catch (Exception e) {
            System.out.println("Bad input");
        }
    }

แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ - แƒ’แƒแƒ“แƒแƒกแƒชแƒ”แƒ›แƒก แƒกแƒ™แƒแƒœแƒ”แƒ แƒ˜แƒ“แƒแƒœ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒš แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒแƒก แƒกแƒแƒ™แƒ”แƒขแƒจแƒ˜ แƒ“แƒ แƒแƒ˜แƒซแƒฃแƒšแƒ”แƒ‘แƒก แƒ›แƒ˜แƒก แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒแƒก

    private void sendCommand()
    {
        try {

            for (String str : input) {
                for (char ch : str.toCharArray()) {
                    sout.write(ch);
                }
                sout.write(' ');
            }
            sout.write('n');
        }
        catch (Exception e) {
            System.out.print(e.getMessage());
        }
    }

แƒกแƒ”แƒšแƒ”แƒฅแƒขแƒแƒ แƒ˜ แƒแƒ แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒœแƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ•แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜ แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—. แƒแƒฅ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒแƒ แƒช แƒ—แƒฃ แƒ˜แƒกแƒ” แƒšแƒแƒ›แƒแƒ–แƒ˜แƒ แƒ“แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฎแƒ แƒ˜แƒ™แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ— แƒ˜แƒซแƒฃแƒšแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒ’แƒแƒกแƒ•แƒšแƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ›แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜ แƒแƒ แƒ˜แƒก Java-แƒจแƒ˜ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ แƒแƒ›แƒ˜แƒก แƒแƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒ“แƒ”แƒšแƒ”แƒ’แƒแƒขแƒ”แƒ‘แƒ˜ C#-แƒจแƒ˜, แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜ C++-แƒ“แƒแƒœ แƒแƒœ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒฃแƒ› แƒกแƒแƒจแƒ˜แƒœแƒ”แƒšแƒ˜ แƒ“แƒ แƒกแƒแƒจแƒ˜แƒœแƒ”แƒšแƒ˜ goto, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ’แƒแƒœแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒแƒ— แƒ”แƒก แƒšแƒแƒ›แƒแƒ–แƒแƒ“. แƒ—แƒฃ แƒ˜แƒชแƒ˜แƒ— แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒ™แƒแƒ“แƒ˜ แƒชแƒแƒขแƒ แƒฃแƒคแƒ แƒ แƒ”แƒšแƒ”แƒ’แƒแƒœแƒขแƒฃแƒ แƒ˜, แƒ›แƒ˜แƒ•แƒ”แƒกแƒแƒšแƒ›แƒ”แƒ‘แƒ˜ แƒ™แƒ แƒ˜แƒขแƒ˜แƒ™แƒแƒก แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒจแƒ˜. แƒ›แƒ”แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒแƒฅ แƒกแƒขแƒ แƒ˜แƒœแƒ’-แƒ“แƒ”แƒšแƒ”แƒ’แƒแƒขแƒฃแƒ แƒ˜ แƒšแƒ”แƒฅแƒกแƒ˜แƒ™แƒแƒœแƒ˜แƒ แƒกแƒแƒญแƒ˜แƒ แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ“แƒ”แƒšแƒ”แƒ’แƒแƒขแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก...

    private void selector()
    {
        do{
            if (typeOfCommand.equals("get")){
                get(sourcePath, destPath);
                break;
            }
            if (typeOfCommand.equals("put")){
                put(sourcePath, destPath);
                break;
            }
            showErrorMessage();
        }
        while (false);
    }
}

TFTPS แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜

แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒแƒšแƒแƒ‘แƒ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒ แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒแƒšแƒ”แƒ‘แƒ˜แƒกแƒ’แƒแƒœ, แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒแƒ“, แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ›แƒ˜แƒ—, แƒ แƒแƒ› แƒ›แƒแƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ›แƒแƒ“แƒ˜แƒก แƒแƒ แƒ แƒ™แƒšแƒแƒ•แƒ˜แƒแƒขแƒฃแƒ แƒ˜แƒ“แƒแƒœ, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒกแƒแƒ™แƒ”แƒขแƒ˜แƒ“แƒแƒœ. แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ แƒ”แƒ แƒ—แƒœแƒแƒ˜แƒ แƒ˜แƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ›แƒแƒ— แƒแƒ  แƒ›แƒแƒ•แƒ˜แƒงแƒ•แƒแƒœ, แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ”แƒ‘แƒก แƒจแƒ”แƒ•แƒ”แƒฎแƒ”แƒ‘แƒ˜.

แƒ“แƒแƒกแƒแƒฌแƒงแƒ”แƒ‘แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒฆแƒ”แƒ‘แƒก แƒžแƒแƒ แƒขแƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— แƒ“แƒ แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒกแƒแƒ™แƒ”แƒขแƒ˜แƒ“แƒแƒœ แƒ›แƒแƒ แƒแƒ“แƒ˜แƒฃแƒš แƒชแƒ˜แƒ™แƒšแƒจแƒ˜.

    public void run(int port) {
            this.port = port;
            incialization();
            while (true) {
                getAndParseInput();
                selector();
            }
    }

put แƒ›แƒ”แƒ—แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฎแƒ•แƒ”แƒ•แƒก writeToFileFromSocket แƒ›แƒ”แƒ—แƒแƒ“แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฎแƒกแƒœแƒ˜แƒก แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒœแƒแƒ™แƒแƒ“แƒก แƒคแƒแƒ˜แƒšแƒจแƒ˜ แƒ“แƒ แƒฌแƒ”แƒ แƒก แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒ‘แƒแƒ˜แƒขแƒก แƒกแƒแƒ™แƒ”แƒขแƒ˜แƒ“แƒแƒœ, แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ–แƒ”, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฉแƒแƒฌแƒ”แƒ แƒ แƒ“แƒแƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ.

    private  void put(String source, String dest){
            writeToFileFromSocket();
            System.out.print("nDonen");
    };
    private void writeToFileFromSocket()
    {
        try {
            FileOutputStream writer = new FileOutputStream(new File(destPath));
            byte[] bytes = sin.readAllBytes();
            for (byte b : bytes) {
                writer.write(b);
            }
            writer.close();
        }
        catch (Exception e){
            System.out.println(e.getMessage());
        }
    }

แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒ˜แƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒก. แƒ แƒแƒ’แƒแƒ แƒช แƒฃแƒ™แƒ•แƒ” แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒ”แƒ— แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ”แƒก แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒจแƒ˜, แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒกแƒแƒขแƒแƒœแƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ˜แƒชแƒแƒ“แƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ–แƒแƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ แƒ’แƒ แƒซแƒ”แƒš แƒ›แƒ—แƒ”แƒš แƒ แƒ˜แƒชแƒฎแƒ•แƒจแƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒ•แƒงแƒแƒ•แƒ˜ แƒ›แƒแƒก 4 แƒ‘แƒแƒ˜แƒขแƒ˜แƒก แƒ›แƒแƒกแƒ˜แƒ•แƒจแƒ˜, แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒขแƒแƒœ แƒ‘แƒแƒ˜แƒขแƒ˜-แƒ‘แƒแƒ˜แƒขแƒ˜. แƒกแƒแƒ™แƒ”แƒขแƒจแƒ˜, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ” แƒ“แƒ แƒจแƒ”แƒ•แƒ™แƒ แƒ˜แƒ‘แƒ”แƒ‘แƒ˜ แƒ›แƒแƒ— แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ–แƒ” แƒ แƒ˜แƒชแƒฎแƒ•แƒแƒ“ แƒฃแƒ™แƒแƒœ, แƒ’แƒแƒ“แƒแƒ•แƒชแƒ”แƒ› แƒงแƒ•แƒ”แƒšแƒ แƒ‘แƒแƒ˜แƒขแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฅแƒ›แƒœแƒ˜แƒก แƒคแƒแƒ˜แƒšแƒก, แƒฌแƒแƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ” แƒคแƒแƒ˜แƒšแƒ˜แƒ“แƒแƒœ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒœแƒแƒ™แƒแƒ“แƒ˜แƒ“แƒแƒœ.


 private  void get(String source, String dest){
        File sending = new File(source);
        try {
            FileInputStream readFromFile = new FileInputStream(sending);
            byte[] arr = readFromFile.readAllBytes();
            byte[] bytes = ByteBuffer.allocate(Long.SIZE / Byte.SIZE).putLong(sending.length()).array();
            for (int i = 0; i<Long.SIZE / Byte.SIZE; i++)
                sout.write(bytes[i]);
            sout.flush();
            for (byte b : arr)
                sout.write(b);
        }
        catch (Exception e){
            System.out.println(e.getMessage());
        }
    };

getAndParseInput แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒ, แƒ แƒแƒช แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒจแƒ˜, แƒ”แƒ แƒ—แƒแƒ“แƒ”แƒ แƒ—แƒ˜ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ แƒ˜แƒกแƒแƒ, แƒ แƒแƒ› แƒ˜แƒก แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒกแƒแƒ™แƒ”แƒขแƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒแƒ แƒ แƒ™แƒšแƒแƒ•แƒ˜แƒแƒขแƒฃแƒ แƒ˜แƒ“แƒแƒœ. แƒ™แƒแƒ“แƒ˜ แƒแƒ แƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒจแƒ˜, แƒ˜แƒกแƒ”แƒ•แƒ” แƒ แƒแƒ’แƒแƒ แƒช แƒกแƒ”แƒšแƒ”แƒฅแƒขแƒแƒ แƒ˜.
แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ›แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒชแƒแƒšแƒ™แƒ”แƒฃแƒš แƒ‘แƒšแƒแƒ™แƒจแƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒ› แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒจแƒ˜, แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜ แƒ’แƒแƒœแƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒšแƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ“แƒแƒ˜แƒ™แƒแƒ•แƒ”แƒ‘แƒก - แƒ˜แƒกแƒ”แƒ• แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒŸแƒแƒœแƒ•แƒ˜แƒกแƒ’แƒแƒœ แƒ“แƒแƒชแƒ•แƒ˜แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒกแƒแƒงแƒแƒคแƒแƒ“.

    private void  incialization()
    {
        try {
            serverSocket = new ServerSocket(port);
            socket = serverSocket.accept();
            sin = socket.getInputStream();
            sout = socket.getOutputStream();
        }
        catch (Exception e) {
            System.out.print(e.getMessage());
        }
    }

แƒ แƒ”แƒ–แƒ˜แƒฃแƒ›แƒ”:

แƒฉแƒ•แƒ”แƒœ แƒแƒฎแƒšแƒแƒฎแƒแƒœ แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ”แƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒชแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ˜แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ• แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ–แƒ” แƒ“แƒ แƒ’แƒแƒ•แƒแƒ แƒ™แƒ•แƒ˜แƒ”แƒ—, แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก. แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒจแƒ˜, แƒ›แƒ” แƒแƒฅ แƒแƒ›แƒ”แƒ แƒ˜แƒ™แƒ แƒแƒ  แƒแƒฆแƒ›แƒแƒ•แƒแƒฉแƒ˜แƒœแƒ” แƒ“แƒ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒ แƒแƒ› แƒแƒ  แƒ“แƒแƒ›แƒ˜แƒฌแƒ”แƒ แƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฐแƒแƒ‘แƒ แƒ”แƒ–แƒ” แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ”แƒ‘แƒ˜ แƒแƒ  แƒงแƒแƒคแƒ˜แƒšแƒ แƒ“แƒ cmd-แƒ˜แƒก แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒกแƒขแƒแƒขแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒ”แƒ แƒ˜แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒจแƒ˜ แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒงแƒ แƒ›แƒแƒกแƒ–แƒ” แƒแƒ  แƒจแƒ”แƒ•แƒ”แƒฎแƒแƒ—.

แƒ‘แƒ›แƒฃแƒšแƒ”แƒ‘แƒ˜:

แƒฌแƒงแƒแƒ แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒ˜
แƒ›แƒแƒ™แƒšแƒ”แƒ“ TFTP-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘
แƒ˜แƒ’แƒ˜แƒ•แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒฃแƒกแƒฃแƒšแƒแƒ“

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ