ν€λ³΄λμμ μ«μλ₯Ό μ λ ₯ν λλ§λ€ μ λ ₯λ μμ ꡬꡬλ¨μ΄ νλ©΄μ νμλλ κΈ°λ₯μ 무νν λ°λ³΅νλ€.
κ·Έμ λμμ μ€λ λ μ§λ₯Ό 1μ΄μ νλ²μ© dates.txt νμΌμ ννμΌλ‘ κΈ°λ‘νκΈ°λ₯Ό 무νν λ°λ³΅νλ€.
λ§μ½ μ΄μ©μκ° μ«μλ₯Ό μ λ ₯νλ λμ λ¬Έμλ₯Ό μ λ ₯νλ©΄, λͺ¨λ κΈ°λ₯μ΄ μ μ§λκ³ νλ‘κ·Έλ¨μ΄ μ’ λ£λλλ‘νλ€.
Threadλ₯Ό μ’ λ£νλ €λ©΄ μ°λ λκ° μ€ννλ 무ν 루νλ₯Ό μμ ν μ’ λ£νλ©΄ λλ€.
Daemon μ°λ λ : μ΄λ€ μ°λ λκ° μ’ λ£ν λ, κ·Έ μ°λ λκ° μμ±ν νμ μ°λ λλ ν¨κ» μ’ λ£λλ μ°λ λ
Main() λ©μλλ μλ°μμ μ§μνλ Main Threadκ° μ€ννλλ‘ λμ΄ μκ³ , Main() λ©μλ μμμ μμ±λλ μ°λ λλ Main Threadμ νμ (μμ) μ°λ λμΈ μ μ΄λ€. λΆλͺ¨ μ°λ λκ° μ’ λ£ν λ κ·Έ μμμ μμ±λ μμ μ°λ λκΉμ§ μ’ λ£ λλλ‘ νλ €λ©΄, μμ μ°λ λλ₯Ό μμ±ν λ μ°Έμ‘°λ³μκ° t1μ΄λΌλ©΄ t1.setDaemon(true)λ₯Ό μ¬μ©νλ©΄ λλ€. μ΄λ° μνμμ λΆλͺ¨ μ°λ λκ° μ’ λ£λλ©΄ κ·Έ μμ μ°λ λμΈ t1λ ν¨κ» μ’ λ£νλ€.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
import java.io.FileWriter;
import java.io.*;
import java.io.PrintWriter;
import java.util.Date;
import java.util.Scanner;
public class ThreadMain
{
public static void main(String[] args)
{
Thread gg = new Thread(
new Runnable() {//μ΅λͺ
ν΄λμ€(Anonymous Class)μ κ°μ²΄ μμ±
@Override
public void run() {
Code1();
}
}
);
gg.setDaemon(true);
gg.start();
try {
PrintWriter pw = new PrintWriter(new FileWriter("D:/java_test/dates.txt"));
while(!exit) {
pw.println(new Date());
pw.flush();
Thread.sleep(1000);
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("λ©μΈ μ°λ λ μ’
λ£");
}
static boolean exit = false;
static void Code1(){
boolean go = true;
while(go) {
System.out.println("λ¨μλ₯Ό μ
λ ₯νμΈμ.");
Scanner kbd = new Scanner(System.in);
try {
int inputnum = kbd.nextInt();
kbd.nextLine();
for(int i =1;i<10;i++) {
System.out.printf("%d * %d = %d\n",inputnum,i,inputnum*i);
}
} catch (Exception e) {
exit = true;
}
}
}
}
|
cs |
μ½μ κ°:
λ¨μλ₯Ό μ
λ ₯νμΈμ.
5
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
λ¨μλ₯Ό μ
λ ₯νμΈμ.
6
6 * 1 = 6
6 * 2 = 12
6 * 3 = 18
6 * 4 = 24
6 * 5 = 30
6 * 6 = 36
6 * 7 = 42
6 * 8 = 48
6 * 9 = 54
λ¨μλ₯Ό μ
λ ₯νμΈμ.
γ
λ©μΈ μ°λ λ μ’
λ£
dates.txt λ¬Έμ
deamon μ°λ λλ₯Ό μ¬μ©νμ¬ code1μμ λ¬Έμλ₯Ό μ λ ₯νλ©΄ λ©μΈ μ°λ λμ μλ 무ν 루νμμ λΉ μ Έλκ°κ² λμ΄ νλ‘κ·Έλ¨μ΄ λ©μΆκ³ ν¨κ» code1 λ©μλλ μ’ λ£λκ² λ§λ€μλ€. μ€νν λ¬Έμλ₯Ό μ λ ₯νμ¬ μ€λ₯λ₯Ό λ°μνλλ 무ν루νμμ λΉ μ Έλκ° νλ‘κ·Έλ¨μ΄ λλ¬κ³ μκ°μ κ³μ μ°μ΄λ΄λ 루νλ μ½ 8μ΄κ°λ§ μλν κ±Έ νμΈν μ μλ€.
Protocol : ν΅μ κ·μ½ (TCP/IP, HTTP)
μλ°μμ μ 곡ν΄μ£Όλ TCP ν΄λμ€ μμΌ (Socket)κ³Ό μλ² μμΌ(Sever socket)μ μ΄μ©νμ¬ λ€νΈμν¬κ°μ κ΅λ₯κ° κ°λ₯νλ€.
νμΌκ³Ό νμΌκ°μ λ°μ΄ν° μ΄λ λ§κ³ λ λ€νΈμν¬μ λ€νΈμν¬ κ°μ λ°μ΄ν° μ΄λλ κ°λ₯νλ€. μ 보λ₯Ό μ λ¬ λλ μμ²νλ μ»΄ν¨ν°λ₯Ό ν΄λΌμ΄μΈνΈ μ»΄ν¨ν°λΌ νκ³ κ·Έκ²μ μμ νμ¬ κ²°κ³Όλ₯Ό 보λ΄μ£Όλ μ»΄ν¨ν°λ₯Ό μλ² μ»΄ν¨ν°λΌκ³ νλ€. μλ° μ½λμμλ μμ²νκ³ λ°κ³ λ€μ μμ²νκ³ λ°κ³ νλ μΌλ ¨μ κ³Όμ λ€λ‘ λ°μ΄ν°λ₯Ό μ λ¬ κ°λ₯ν΄ μ§λ€.
λ€νΈμν¬ λ°μ΄ν° μ΄λ κΈ°μ΄ λ§λ³΄κΈ°
λ€νΈμν¬κ°μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μΌλ €λ©΄ λ¨Όμ μλ² μ»΄ν¨ν°κ° λμ κ°μΌνλ€. μλ² ν΄λμ€λ₯Ό μ€νμν€λ©΄ ν΄λΌμ΄μΈνΈμμ μ νΈλ₯Ό κΈ°λ€λ¦¬λ λκΈ° μνλ‘ μλλ€.
ν΄λΌμ΄μΈνΈ ν΄λμ€λ₯Ό μ€νμν€λ©΄ μ λ ₯ν΄μ€ νΈμ€νΈμ ν¬νΈλ‘ μ°κ²°μ νλ€.
ν΄λΌμ΄μΈνΈμ μ μ°κ²°λμ΄ νλ‘κ·Έλ¨μ΄ λ§μ§λ§κΉμ§ μ€νλ κ±Έ νμΈν μ μλ€.
Streamμ μ΄μ©ν λ€νΈμν¬κ° λ°μ΄ν° μ΄λ(νμ μ½λ©μΌλ‘ κ°λ΅ν λ‘κ·ΈμΈ μμ€ν λ§λ³΄κΈ°)
Server ν΄λμ€ μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
import java.io.*;
import java.net.*;
public class Server
{
public static void main(String[] args)
{
try {
ServerSocket ss = new ServerSocket(1234);
//0~1024 : μ΄ ν¬νΈλ€μ νΌν΄μ λ§λ λ€.
System.out.println("μλ²μμΌ λκΈ°μ€");
Socket s = ss.accept();//μλ²μͺ½μμ λ©μΆ°μ 무ν λκΈ° νλ€κ° ν΄λΌμ΄μΈνΈκ°
//μ μ μμ²μ νλ©΄ μ μμ λ°μλ€μ΄κ³ μ μλ ν΄λΌμ΄μΈνΈμ ν΅μ νκΈ° μν Socket μμ±
System.out.println("ν΄λΌμ΄μΈνΈ μ μλ¨");
//μ μ κ΄λ¦¬
//ν΄λΌμ΄μΈνΈμκ² λ©μμ§ νΈμΆ
OutputStream os = s.getOutputStream();
OutputStreamWriter ow = new OutputStreamWriter(os);
//λ¬Έμμ΄ λ°μ΄ν°λ₯Ό λ°μ΄νΈ λ°μ΄ν°λ‘ λ³νν΄μ μΆλ ₯
PrintWriter pw = new PrintWriter(ow);
//λ¬Έμμ΄ ννννμ μΆλ ₯
pw.println("μ μ μ±κ³΅");
pw.flush(); //μμ λ°μ΄ν°λΌλ μΆλ ₯νκ²λ λͺ
λ Ή
//ν΄λΌμ΄μΈνΈκ° 보λ΄λ μμ΄λ μνΈλ₯Ό μμ νκ³ μΈμ¦μ μννλ€.
InputStream is = s.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String msg = br.readLine();
String[] login = msg.split(" ");
String uid = login[0];
String upw = login[1];
if(uid.equals("Smith")&&upw.equals("12345")) {
pw.println("λ‘κ·ΈμΈ μ±κ³΅");
pw.flush();
}else {
pw.println("λ‘κ·ΈμΈ μ€ν¨");
pw.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("μλ² μ’
λ£");
}
}
|
cs |
Client ν΄λμ€ μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
import java.io.*;
import java.net.*;
public class Client
{
public static void main(String[] args)
{
try {
Socket s = new Socket("127.0.0.1",1234);//루ν λ°± μμ΄νΌ μ£Όμ
//(String host, int port)
System.out.println("μλ²μ μ μ±κ³΅");
//μλ²μμ μ μ‘ν λ©μμ§λ₯Ό μμ νλ€
InputStream is = s.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String msg = br.readLine();
System.out.println("μλ²μΈ‘μμ 보λ΄μ¨ λ©μΈμ§:"+msg);
if(msg.equals("μ μ μ±κ³΅")) {
OutputStream os = s.getOutputStream();
OutputStreamWriter ow = new OutputStreamWriter(os);
PrintWriter pw = new PrintWriter(ow);
pw.println("Smith 12345");
pw.flush();
String loginresult = br.readLine();
if(loginresult.equals("λ‘κ·ΈμΈ μ±κ³΅")) {
System.out.println("λ‘κ·ΈμΈ κ²°κ³Ό:"+loginresult);
//μ±ν
λ©μμ§λ₯Ό μ‘μμ νλ€.
//무ν 루νλ₯Ό μ¬μ©νμ¬ μ±ν
λ©μμ§λ₯Ό 보λ΄κ³ λ°λλ€
//ν€λ³΄λ μ
λ ₯ > μλ²λ‘μ μ‘ : νλμ 무ν루νλ‘ κ΅¬μ±(μΆλ ₯κΈ°λ₯)
//λ€νΈμ μ
λ ₯ > λͺ¨λν° μΆλ ₯ : νλμ 무ν 루νλ‘ κ΅¬μ±(μ
λ ₯ κΈ°λ₯)
}
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("ν΄λΌμ΄μΈνΈ μ’
λ£");
}
}
|
cs |
μλ² μ½μ κ°:
μλ²μμΌ λκΈ°μ€
ν΄λΌμ΄μΈνΈ μ μλ¨
μλ² μ’
λ£
ν΄λΌμ΄μΈνΈ μ½μ κ°:
μλ²μ μ μ±κ³΅
μλ²μΈ‘μμ 보λ΄μ¨ λ©μΈμ§:μ μ μ±κ³΅
λ‘κ·ΈμΈ κ²°κ³Ό:λ‘κ·ΈμΈ μ±κ³΅
ν΄λΌμ΄μΈνΈ μ’
λ£
μ€νΈλ¦Όμ ν΅ν΄ μ 보λ₯Ό 보λ΄κ³ λ°κ³ λ€μ 보λ΄κ³ λ°κ³ μ κ³Όμ μ λ°λ³΅ν΄μ€λ€.
μλ² ν΄λμ€μμ μ μμ±μ μΆλ ₯νλ©΄ ν΄λΌμ΄μΈνΈ ν΄λμ€μμ μ λ ₯ λ°κ³ κ·Έκ²μ΄ 쑰건문μ μΆ©μ‘±νλ€λ©΄ ν΄λΌμ΄μΈνΈ ν΄λμ€μμ μμ΄λμ λΉλ°λ²νΈλ₯Ό μΆλ ₯νκ³ μλ² ν΄λμ€μμ κ·Έ μ 보λ€μ μ λ ₯ λ°λλ€. λ°μ μ λ³΄κ° λ°μ΄ν° λ² μ΄μ€μ μλ μ 보μ λ§λ€λ©΄ λ‘κ·ΈμΈ μ±κ³΅μ μΆλ ₯νκ³ ν΄λΌμ΄μΈνΈ ν΄λμ€μμ λ³΄λΈ κ²μ μ λ ₯ λ°λλ€.
μλ² μ»΄ν¨ν°κ° νλ μΌμ 무ν λκΈ°νκ³ μλ€κ° ν΄λΌμ΄μΈνΈ μ»΄ν¨ν°κ° μ μνλ©΄ ν΅μ νλ€. κ·Όλ° μλ² μ»΄ν¨ν°λΌλ©΄ ν΅μ νλ©΄μ λκΈ°λ ν μ μκ² λ³νμ²λ¦¬ ν΄μΌνλ€. μκ·Έλ¬λ©΄ νλͺ μ΄ μλ²λ₯Ό μ΄μ©νλ©΄ λ€λ₯Έ μ΄μ©μλ€μ΄ μ΄μ©νμ§ λͺ»νλ€. μ΄λ¬ν λ°©λ²μ ν΄κ²°νκΈ° μν΄μ μ°λ λ μ²λ¦¬(ν΅μ μ© μ λ΄ μ°λ λ μμ±νμ¬ μ€ν) λ₯Ό ν΄μ€μΌνλ€.
λκΈ