http://blog.naver.com/nimba?Redirect=Log&logNo=110042807710
man-month란 프로젝트에 투입되는 월인원이다.
1 M/M 면 1명이 한달동안..2명이면 보름
5 M/M 면 1명이 5달동안..5명이면 한달 짜리 프로젝트다.
간단하게 360 M/M규모의 프로젝트를 6달안에 끝내려면 60명이 투입되어야 한다는 계산이 나온다.
맞나? ㅋ
Client가 입력 -> Server가 받음 -> Client에 보내줌 -> Client는 받는내용 출력.
package echo;
import java.io.*;
import java.net.*;
/**
* 1. 키보드 입력받기
* 2. 키보드 입력받은 내용을 서버에 보내기
* 3. 서버가 보내주는 내용을 받기
* 4. 받은 내용을 콘솔에 출력하기
* @author stu
*
*/
public class EchoClient {
//서버 정보
String host;
int port;
//생성자
public EchoClient(String host, int port){
this.host = host;
this.port = port;
}
public void execute(){
//서버연결
try {
Socket s = new Socket(host, port);
//서버와 입력
BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));
//서버로 출력
PrintWriter output = new PrintWriter(s.getOutputStream());
System.out.println("입력하세요.");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = "";
while((line = br.readLine())!=null){
if(line.equals("q")) break;
output.println(line);
//출력버퍼 비우기
output.flush();
//서버의 입력 받기
line = input.readLine();
System.out.printf("서버에서 받은 내용 : %s\n", line);
}
br.close();
input.close();
output.close();
s.close();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
new EchoClient("localhost", 20000).execute();
}
}
package echo;
import java.io.*;
import java.net.*;
/**
* 1. 클라이언트가 보내는 정보를 받자
* 2. 받은 정보를 그대로 클라이언트에게 보내자.
* @author stu
*
*/
public class EchoServer extends Thread {
//생성자
public EchoServer(){
this.start();
}
public void run() {
System.out.println("손님 컴온");
while (true) {
try {
ServerSocket ss = new ServerSocket(20000);
System.out.println("서버 스타트");
Socket s = ss.accept();
// 서버와 입력
BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));
// 서버로 출력
PrintWriter output = new PrintWriter(s.getOutputStream());
String line = "";
while((line = input.readLine())!=null){
System.out.println(line);
//client로 보내기
output.println(line);
//출력버퍼 비우기
output.flush();
}
input.close();
output.close();
s.close();
ss.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new EchoServer();
}
}