¡i¤@¡j. ¥»µ{¦¡°Ñ¦Ò TFTP ªº RFC ³W®æ, ¬[ºc¦b UDP¤W, ¨Ã¥[±j³¡¤À¥\¯à
¨ä¤¤·s¼Wªº¥\¯à¦³¥H¤U´X¶µ :
(1) ¥» Server ¬° Multi Connection ¥i±µ¨ü¤@Ó¥H¤W¦P®Éªº³s½u(¹w³]È : 3)
(2) ¼ÒÀÀ Unix ªº FTP «ü¥O, ¤j³¡¤À Unix ¦³ªº, ¦¹µ{¦¡¬Ò¦³
(3) ·s¼W»·ºÝ¸ô®|Åã¥Ü, ÀH®É¥i¬Ý¨ì»·ºÝ¥D¾÷ªº¸ô®|
(4) ¥i¦Û¦æÅܧó Connection ¤W¼Æ¥Ø, ¤Î Connect_Timeout , Receive_Timeout
¤Î Idle_Timeout µ¥µ¥, ¥þ³¡³£©ñ¦b pkt.h
(5) ¨CÓ recvfrom() ªº¨ç¼Æ±µ³]¦³ timeout ¥H¨¾¤î deadlock ªº²£¥Í
(6) ¼W¥[ hostname ªº¬d¸ß, ³s½u®É¥i¿é¤J IP ©Î¬O Domain name
(7) ³Æ¦³³s½u«¸Õªº¥\¯à, ¤@¶}©l¥Ñ 7 ¬í, YµL¤ÏÀ³¦AÅܦ¨ 14¬í
, µM«á 28 ¬í, ³Ì«á©ñ±ó, ©Ò±o¤§È·í§@«á¨Ó³s½uªº Connect_Timeout
(8) ³]¦³µn¤J¦WºÙ¥H¤Îµn¤J±K½Xªº¾÷¨î, ¨ä¤¤±K½X¬O±Ä¥Î§Ú¦Û¤v©Ò³]ªº½s½X¤è¦¡
©T©w½s¦¨¤@Óªø 60Ó¥»¤å¦r (ASCII code), ¥un User ªº ¦W¦r¤£¦P,
§Y¨Ï¬Û¦Pªº±K½X©Ò½s¥X¨Óªºµ²ªG¥ç¤£¬Û¦P
(9) Dir «ü¥O±Ä¦Û°Ê¤À¶¥\¯à¥H¤è«KÂsÄý, ¤¤³~¥ç¥i«ö "q" ÁäÂ÷¶}
(10) ¦b¶Ç°e¥H¤Î±µ¦¬ÀÉ®×®É, ªþ¦³¶i«×Åã¥Ü, ¥H¤è«Kª¾¹D¶Ç°e¶i«×,
¨Ãªþ¦³±ÛÂà´Î, ¥H«Kª¾¹D¶Ç¿éªº³t«×
(11) Server ºÝ³]¦³ Idle_Timeout ªº¾÷¨î, ¥i¥H§â¶¢¸m¹L¤[ªº³s½u
¤ÁÂ_ (¹w³]È : 60¬í)
(12) ªþ³]"Åwªï°T®§ÀÉ" ,¥i¦Û¦æ³]©wµn¤J¦¨¥\«áªºÅwªï°T®§, ¦¹ÀÉ¥i¦³¥iµL
(13) Server ºÝ¬O±Ä¥Î"Âù¼hªº¬[ºc", ¥Ñ Master (run.exe) °µ listen ªº°Ê§@
, ÀH®ÉºÊÅ¥ port:69, ¤@¦³¦Xªkªº³s½u°¨¤W spawn ¤@Ó Slave (server.exe)
¨Ó³s½u, ¦¹®É Master©M Slave ¦P®É°õ¦æ, ¤w¹F¨ì Multi-Connection ªº¥\¯à
¦Ó Slave ¦b Timeout ©Î¬O Disconnect ®É·|¦Û°ÊÄÀ©ñ©Ò¨Ï¥Îªº port
(14) Server ¤Î Client ªº port ±µ±Ä¥Î random ªº¤è¦¡²£¥Í, ¨Ã¦P®É°»¦¹ port
¬O§_¦³¤H¨Ï¥Î, ¦p¦³«h¦A random ¤@¦¸, ¥H¦¹Ãþ±À
(15) ¦b¶ÇÀɼg¤J®É¨C¦¸³£·| fulsh¸ê®Æ, ¥H¨¾¤î¬ðµMÂ_½u¦Ó³y¦¨¸ê®Æ¬y¥¢
(16) ¿é¤J±K½X®É·|ÁôÂéҿé¤Jªº¦r¤¸, ¨Ã¦b¿é¤J«á¥ß§Y½s½X¦A¶Ç°e
¡i¤G¡j. ì©lÀÉ®×»¡©ú :
(1) adduser.cpp : ·s¼W¤@¨Ï¥ÎªÌ¨ì¸ê®Æ®w¤¤
(2) ftp.cpp : Client ºÝ¥DÀÉ
(3) key.h : ½s½Xªº¥DÀÉ
(4) pkt.h : ¤@¨Ç¦@¥Îªº«nÅܼƥH¤Î¦³Ãö«Ê¥]ªº«Ê¸Ë,¸Ñ¸Ë¥H¤Î¶Ç°eªº¨ç¦¡
(5) run.cpp : Server ºÝªº Master
(6) server.cpp : Server ºÝªº Slave
¡i¤T¡j. °õ¦æÀÉ»¡©ú :
(1) run.exe : Server ºÝªº±Ò°Ê¥D°õ¦æÀÉ
(2) server.exe : Server ºÝªº³Q°Ê°õ¦æÀÉ, ¦¹ÀÉ·|¦Û°Ê¥Ñ run.exe ©I¥s
(3) ftp.exe : Client ºÝªº°õ¦æÀÉ
(4) password.txt : ¨Ï¥ÎªÌªº±K½X¸ê®Æ®w, ±ý§R°£¬Y¤@¨Ï¥ÎªÌ, ª½±µ§R°£¨º¤@¦æ§Y¥i
(5) welcome.txt : µn¤JÅwªï°T®§ÀÉ, °ß¤@Ó¤å¦rÀÉ, ¥i¦Û¦æ½s¿è
¡i¥|¡j. ¾Þ§@¨BÆJ :
Server ºÝ : §â run.exe , server.exe , password.txt , welcome.txt ©ñ¸m¦P¤@¥Ø¿ý¤U
µM«á°õ¦æ run.exe §Y¥i
Client ºÝ : °õ¦æ ftp [IP] ©Î¬O°õ¦æ ftp «á¦A¿é¤J IP
ªþµù : (1) ¨CÓ°õ¦æÀɬҪþ¦³¿ù»~°T®§, ¾Þ§@¦³»~©Î¬O¯Ê¤ÖÀɮ׮ɳ£·|¦³»¡©ú¥X²{, ¤£·|
¦³¨Òª¬ªºª¬ªpµo¥Í
(2) ¹w³]ªº timeout ȳ£«Ü¤p, ¦p¹J¨ì¸ûºCªººô¸ô»ÝnÅܧ󬰸û¤jÈ«á
¦A«·s compile, ¥H¨¾¤î¹L«×ªº timeout
µo®iÀô¹Ò : Microsoft Windows 98 ¥H¤Î Visual C++ 5.0