자바 소켓을 이용한 서버-클라이언트 프로그램
조회수 3611회
클라이언트에서 A라고 입력이 되면 서버에서 C/:내의 파일목록을 보내주는 프로그램을 짜고있습니다.
서버코드입니다.
public class Server {
public static void main(String[] args) {
try {
ServerSocket serverSocket = new ServerSocket(7777);
while(true) {
Socket socket = serverSocket.accept();
BufferedReader si=new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8"));
PrintWriter so= new PrintWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8"));
if(si.readLine()=="A"){
so.println(getDirContent());
} else {
so.println(si.readLine());
}
so.flush(); si.close(); so.close(); socket.close();
}
} catch(Exception e) {}
}
private static String getDirContent() {
File dir=new File("C:/");
String files[]=dir.list();
List<String> list=Arrays.asList(files);
return list.toString();
}
}
클라이언트 코드입니다.
public class Client {
public static void main(String[] args) {
try {
Socket socket=new Socket("localhost",7777);
BufferedReader si=new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));
PrintWriter so=new PrintWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8"));
Scanner ki=new Scanner(System.in);
so.println(ki.nextLine()); so.flush();
System.out.println(si.readLine());
si.close(); so.close(); ki.close(); socket.close();
} catch(Exception e) {
System.out.println(e.getMessage());
}
}
}
실행은 되나 클라이언트에서 입력해도 제대로 결과가 나오지 않습니다. 무엇이 문제일까요??
댓글 입력