import java.io.BufferedReader ;
import java.io.File ;
import java.io.FileOutputStream ;
import java.io.InputStreamReader ;
import java.net.ServerSocket ;
import java.net.Socket ;
import java.io.* ;
import java.net.* ;
public class TCPServer
implements Runnable { public static final int serverPort = 80 ;
public void run( ) {
try {
while ( true )
{
Socket sock
= serverSocket.
accept ( ) ; System .
out .
println ( "수신중...." ) ; try {
System .
out .
println ( "수신중인 파일 이름 : " + str
) ; File f
= new File ( "C:\\ Users\\ Administrator\\ workspace\\ download" , str
+ ".txt" ) ; byte [ ] buf = new byte [ 1024 ] ; while ( sock.getInputStream ( ) .read ( buf) > 0 )
{
output.write ( buf) ;
output.flush ( ) ;
}
in.close ( ) ;
output.close ( ) ;
System .
out .
println ( str
+ ".txt 수신완료" ) ; /*
BufferedReader keyRead = new BufferedReader(new InputStreamReader(System.in));
// sending to client (pwrite object)
OutputStream ostream = sock.getOutputStream();
PrintWriter pwrite = new PrintWriter(ostream, true);
String sendMessage;
while(true) {
sendMessage = keyRead.readLine();
pwrite.println(sendMessage);
pwrite.flush();
}
*/
}
System .
out .
println ( "서버 에러!!" ) ; e.printStackTrace ( ) ;
}
finally {
sock.close ( ) ;
}
}
}
e.printStackTrace ( ) ;
}
}
public static void main
( String [ ] argv
) { doit.start ( ) ;
}
}
aW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7IAppbXBvcnQgamF2YS5pby5GaWxlOyAKaW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsgCmltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOyAKaW1wb3J0IGphdmEubmV0LlNlcnZlclNvY2tldDsgCmltcG9ydCBqYXZhLm5ldC5Tb2NrZXQ7IAppbXBvcnQgamF2YS5pby4qOwppbXBvcnQgamF2YS5uZXQuKjsKICAKcHVibGljIGNsYXNzIFRDUFNlcnZlciBpbXBsZW1lbnRzIFJ1bm5hYmxleyAKcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgc2VydmVyUG9ydCA9IDgwOyAKcHVibGljIHZvaWQgcnVuKCl7IAogICAgICAgICAgIAl0cnl7IAogICAgICAgICAgIAkgICAgU3lzdGVtLm91dC5wcmludGxuKCLrjIDquLDspJEuLiIpOyAKICAgICAgICAgICAJICAgIFNlcnZlclNvY2tldCBzZXJ2ZXJTb2NrZXQgPSBuZXcgU2VydmVyU29ja2V0KHNlcnZlclBvcnQpOyAKICAgICAgICAgICAJICAgICAgICAgICAJICAKICAgICAgICAgICAJICAgIHdoaWxlKHRydWUpIAogICAgICAgICAgIAkgICAgeyAKICAgICAgICAgICAJICAgICAgICAgICAJU29ja2V0IHNvY2sgPSBzZXJ2ZXJTb2NrZXQuYWNjZXB0KCk7IAogICAgICAgICAgIAkgICAgICAgICAgIAlTeXN0ZW0ub3V0LnByaW50bG4oIuyImOyLoOykkS4uLi4iKTsgCiAgICAgICAgICAgCSAgICAgICAgICAgCXRyeXsgCiAgICAgICAgICAgCSAgICAgICAgICAgIAlCdWZmZXJlZFJlYWRlciBpbiA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIoc29jay5nZXRJbnB1dFN0cmVhbSgpKSk7IAogICAgICAgICAgIAkgICAgICAgICAgIAkgICAgU3RyaW5nIHN0ciA9IGluLnJlYWRMaW5lKCk7IAogICAgICAgICAgIAkgICAgICAgICAgIAkgICAgU3lzdGVtLm91dC5wcmludGxuKCLsiJjsi6DspJHsnbgg7YyM7J28IOydtOumhCA6ICIgKyBzdHIpOyAKICAgICAgICAgICAJICAgICAgICAgICAgICAgIEZpbGUgZiA9IG5ldyBGaWxlKCJDOlxcVXNlcnNcXEFkbWluaXN0cmF0b3JcXHdvcmtzcGFjZVxcZG93bmxvYWQiLCBzdHIrIi50eHQiKTsgCiAgICAgICAgICAgCSAgICAgICAgICAgICAgICBGaWxlT3V0cHV0U3RyZWFtIG91dHB1dCA9IG5ldyBGaWxlT3V0cHV0U3RyZWFtKGYpOyAKICAgICAgICAgICAJICAgICAgICAgICAJICAgIGJ5dGVbXSBidWYgPSBuZXcgYnl0ZVsxMDI0XTsgICAgICAgICAgICAgICAgICAgICAgIAkgICAgICAgICAgIAkgICAgICAgICAgIAkgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZShzb2NrLmdldElucHV0U3RyZWFtKCkucmVhZChidWYpPjApIAogICAgICAgICAgIAkgICAgICAgICAgIAkgICAgeyAKICAgICAgICAgICAJICAgICAgICAgICAJICAgICAgICAgICAJb3V0cHV0LndyaXRlKGJ1Zik7IAogICAgICAgICAgIAkgICAgICAgICAgIAkgICAgICAgICAgIAlvdXRwdXQuZmx1c2goKTsgCiAgICAgICAgICAgCSAgICAgICAgICAgCSAgICB9IAogICAgICAgICAgIAkgICAgICAgICAgIAkgICAgaW4uY2xvc2UoKTsgCiAgICAgICAgICAgCSAgICAgICAgICAgCSAgICBvdXRwdXQuY2xvc2UoKTsgCiAgICAgICAJICAgICAgICAgICAJICAgIAlTeXN0ZW0ub3V0LnByaW50bG4oc3RyKyIudHh0IOyImOyLoOyZhOujjCIpOyAKICAgICAgICAgICAJICAgICAgICAgICAJICAgLyogCgkgICAgICAgICAgIAkgICAgICAgICAgIAlCdWZmZXJlZFJlYWRlciBrZXlSZWFkID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcihTeXN0ZW0uaW4pKTsKCSAgICAgICAgICAgCSAgICAgICAgICAgCS8vIHNlbmRpbmcgdG8gY2xpZW50IChwd3JpdGUgb2JqZWN0KQoJICAgICAgICAgICAJICAgICAgICAgICAJT3V0cHV0U3RyZWFtIG9zdHJlYW0gPSBzb2NrLmdldE91dHB1dFN0cmVhbSgpOyAKCSAgICAgICAgICAgCSAgICAgICAgICAgCVByaW50V3JpdGVyIHB3cml0ZSA9IG5ldyBQcmludFdyaXRlcihvc3RyZWFtLCB0cnVlKTsKCSAgICAgICAgICAgCSAgICAgICAgICAgCQoJICAgICAgICAgICAJICAgICAgICAgICAJU3RyaW5nIHNlbmRNZXNzYWdlOyAgICAgICAgICAgICAgIAoJICAgICAgICAgICAJICAgICAgICAgICAJd2hpbGUodHJ1ZSkgewoJICAgICAgICAgICAJICAgICAgICAgICAJCXNlbmRNZXNzYWdlID0ga2V5UmVhZC5yZWFkTGluZSgpOyAKCQkgICAgICAgICAgIAkgICAgICAgICAgICBwd3JpdGUucHJpbnRsbihzZW5kTWVzc2FnZSk7ICAgICAgICAgICAgIAoJCSAgICAgICAgICAgCSAgICAgICAgICAgIHB3cml0ZS5mbHVzaCgpOyAKCSAgICAgICAgICAgCSAgICAgICAgICAgCX0KCSAgICAgICAgICAgCSAgICAgICAgICAgCSovCiAgICAgICAgICAgCSAgICAgICAgICAgCSAgICAKICAgICAgICAgICAJICAgICAgICAgICAJICAgIAogICAgICAgICAgIAkgICAgICAgICAgIAkKICAgICAgICAgICAJICAgICAgICAgICAJfQogICAgICAgICAgIAkgICAgICAgICAgIAljYXRjaChFeGNlcHRpb24gZSl7IAogICAgICAgICAgIAkgICAgICAgICAgIAkgICAgU3lzdGVtLm91dC5wcmludGxuKCLshJzrsoQg7JeQ65+sISEiKTsgCiAgICAgICAgICAgCSAgICAgICAgICAgCSAgICBlLnByaW50U3RhY2tUcmFjZSgpOyAKICAgICAgICAgICAJICAgICAgICAgICAJfSAKICAgICAgICAgICAJICAgICAgICAgICAJZmluYWxseXsgCiAgICAgICAgICAgCSAgICAgICAgICAgCSAgICBzb2NrLmNsb3NlKCk7IAogICAgICAgICAgIAkgICAgICAgICAgIAl9IAogICAgICAgICAgIAkgICAgfSAKICAgICAgICAgICAJfSAKICAgICAgICAgICAJY2F0Y2goRXhjZXB0aW9uIGUpeyAKICAgICAgICAgICAJICAgIGUucHJpbnRTdGFja1RyYWNlKCk7IAogICAgICAgICAgIAl9IAp9IApwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmd2KXsgClRocmVhZCBkb2l0ID0gbmV3IFRocmVhZChuZXcgVENQU2VydmVyKCkpOyAKICAgICAgICAgICAJZG9pdC5zdGFydCgpOyAKfSAKfQ==