ํด๋ผ์ด์ธํธ๊ฐ ์ ์ํ์ฌ ์๋ฒ๋ก ๋ฉ์์ง๋ฅผ ์ ์กํ๋ฉด ์๋ฒ์ธก์์ ๊ทธ ๋ฉ์์ง๋ฅผ ์์ ํ์ฌ ๋ค์ ๊ทธ ํด๋ผ์ด์ธํธ์๊ฒ ์ ์กํ๋ ๊ธฐ๋ฅ์ ์์ฑํด๋ณด๋ผ. ํด๋ผ์ด์ธํธ ์ธก์์๋ ํค๋ณด๋์์ ๋ฉ์์ง๋ฅผ ์ ๋ ฅ ๋ฐ์์ ์๋ฒ๋ก ์ ์กํด์ผํ๋ค. (์์ฝ ์๋ฒ)
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
51
52
53
54
55
56
|
import java.io.*;
import java.net.*;
public class Server
{
public static void main(String[] args)
{
try {
ServerSocket ss = new ServerSocket(1234);
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();
while(true) {
String msg1 = br.readLine();//ํด๋ผ์ด์ธํธ์์ ์จ ๋ฉ์์ง ๋ฐ๊ธฐ
System.out.println("ํด๋ผ์ด์ธํธ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:"+msg1);
pw.println(msg1);//ํด๋ผ์ด์ธํธ๋ก ๋ฉ์์ง ๋ณด๋ด๊ธฐ
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
43
44
45
46
47
48
|
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class Client
{
public static void main(String[] args)
{
try {
Socket s = new Socket("127.0.0.1",1234);
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);
Scanner kbd = new Scanner(System.in);
while(true) {
System.out.println("์
๋ ฅํ ๋ฉ์์ง:");
String line = kbd.nextLine();
pw.println(line);
pw.flush();
String msg1 = br.readLine();
System.out.println("์๋ฒ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:"+msg1);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("ํด๋ผ์ด์ธํธ ์ข
๋ฃ");
}
}
|
cs |
์๋ฒ ํด๋์ค ์ฝ์:
์๋ฒ์์ผ ๋๊ธฐ์ค
ํด๋ผ์ด์ธํธ ์ ์๋จ
ํด๋ผ์ด์ธํธ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:ใ
ใ
ํด๋ผ์ด์ธํธ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:์๋
ํ์ธ์ฉ
ํด๋ผ์ด์ธํธ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:๋น ๋น ์ด
ํด๋ผ์ด์ธํธ ํด๋์ค ์ฝ์:
์๋ฒ์ ์ ์ฑ๊ณต
์๋ฒ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:์ ์ ์ฑ๊ณต
๋ก๊ทธ์ธ ๊ฒฐ๊ณผ:๋ก๊ทธ์ธ ์ฑ๊ณต
์
๋ ฅํ ๋ฉ์์ง:
ใ
ใ
์๋ฒ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:ใ
ใ
์
๋ ฅํ ๋ฉ์์ง:
์๋
ํ์ธ์ฉ
์๋ฒ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:์๋
ํ์ธ์ฉ
์
๋ ฅํ ๋ฉ์์ง:
๋น ๋น ์ด
์๋ฒ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:๋น ๋น ์ด
์
๋ ฅํ ๋ฉ์์ง:
๋ฌดํํ ๋ฐ๋ณต๋๋ ๊ตฌ์กฐ๋ฅผ ๋ณผ ์ ์๋ค.
ํต์ ์ฉ ์ฐ๋ ๋์์๋ ์์ผ์ ํ์๋ก ํ๋ค. (์๋ฒ ํด๋์ค์ 18์ด, 28์ด)
ํด๋ผ์ด์ธํธ ํด๋์ค์ 34์ด~36์ด ์ถ๋ ฅ๊ณผ ์๋ฒ ํด๋์ค์ 41์ด ์ ๋ ฅ๊น์ง์ ๋ด์ฉ์ ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ฉด
์๋ฒ ์ปดํจํฐ๊ฐ ํ๋ ์ผ์ ๋ฌดํ ๋๊ธฐํ๊ณ ์๋ค๊ฐ ํด๋ผ์ด์ธํธ ์ปดํจํฐ๊ฐ ์ ์ํ๋ฉด ํต์ ํ๋ค. ๊ทผ๋ฐ ์๋ฒ ์ปดํจํฐ๋ผ๋ฉด ํต์ ํ๋ฉด์ ๋๊ธฐ๋ ํ ์ ์๊ฒ ๋ณํ์ฒ๋ฆฌ ํด์ผํ๋ค. ์๊ทธ๋ฌ๋ฉด ํ๋ช ์ด ์๋ฒ๋ฅผ ์ด์ฉํ๋ฉด ๋ค๋ฅธ ์ด์ฉ์๋ค์ด ์ด์ฉํ์ง ๋ชปํ๋ค. ์ด๋ฌํ ๋ฐฉ๋ฒ์ ํด๊ฒฐํ๊ธฐ ์ํด์ ์ฐ๋ ๋ ์ฒ๋ฆฌ(ํต์ ์ฉ ์ ๋ด ์ฐ๋ ๋ ์์ฑํ์ฌ ์คํ) ๋ฅผ ํด์ค์ผํ๋ค.
์๋ฒ ํด๋์ค ์ฝ๋
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
import java.io.*;
import java.net.*;
public class Server
{
public static void main(String[] args)
{
try {
ServerSocket ss = new ServerSocket(1234);
while(true) {
System.out.println("์๋ฒ์์ผ ๋๊ธฐ์ค");
Socket s = ss.accept(); //๋ฌดํ๋๊ธฐ
System.out.println("ํด๋ผ์ด์ธํธ ์ ์๋จ");
new CommThread(s).start();
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("์๋ฒ ์ข
๋ฃ");
}
//๋ด๋ถ ํด๋์ค๋ก ๊ตฌํํ ํต์ ์ฉ ์ฐ๋ ๋
static class CommThread extends Thread {
private Socket s;
private PrintWriter pw;
private BufferedReader br;
private boolean loginpass;
CommThread(Socket s) {
this.s = s;
try {
OutputStream os = s.getOutputStream();
OutputStreamWriter ow = new OutputStreamWriter(os);
this.pw = new PrintWriter(ow);
pw.println("์ ์ ์ฑ๊ณต");
pw.flush();
loginpass = login();
}catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
if(loginpass) {
try {
while(true) {
String m = br.readLine();
System.out.println("ํด๋ผ์ด์ธํธ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:"+m);
pw.println(m);
pw.flush();
}
}catch (Exception e) {
e.printStackTrace();
}
}
System.out.println("ํต์ ์ฐ๋ ๋ ์ข
๋ฃ");
}
private boolean login() {
try {
InputStream is = s.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
this.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();
return true;
}
}catch (IOException e) {
e.printStackTrace();
}
return false;
}
}
}
|
cs |
ํด๋ผ์ด์ธํธ ํด๋์ค ์ฝ๋
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
|
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class Client
{
public static void main(String[] args)
{
try {
Socket s = new Socket("127.0.0.1",1234);
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);
Scanner kbd = new Scanner(System.in);
while(true) {
System.out.println("์
๋ ฅํ ๋ฉ์์ง:");
String line = kbd.nextLine();
pw.println(line);
pw.flush();
String m = br.readLine();
System.out.println("์๋ฒ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:"+m);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("ํด๋ผ์ด์ธํธ ์ข
๋ฃ");
}
}
|
cs |
์๋ฒ ํด๋์ค ์ฝ์:
์๋ฒ์์ผ ๋๊ธฐ์ค
ํด๋ผ์ด์ธํธ ์ ์๋จ
์๋ฒ์์ผ ๋๊ธฐ์ค
ํด๋ผ์ด์ธํธ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:์๋
ํ์ธ์
ํด๋ผ์ด์ธํธ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:์๋
ํ๊ณ์ธ์
ํด๋ผ์ด์ธํธ ํด๋์ค ์ฝ์:
์๋ฒ์ ์ ์ฑ๊ณต
์๋ฒ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:์ ์ ์ฑ๊ณต
๋ก๊ทธ์ธ ๊ฒฐ๊ณผ:๋ก๊ทธ์ธ ์ฑ๊ณต
์
๋ ฅํ ๋ฉ์์ง:
์๋
ํ์ธ์
์๋ฒ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:์๋
ํ์ธ์
์
๋ ฅํ ๋ฉ์์ง:
์๋
ํ๊ณ์ธ์
์๋ฒ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:์๋
ํ๊ณ์ธ์
์
๋ ฅํ ๋ฉ์์ง:
ํด๋ผ์ด์ธํธ ํด๋์ค์์ ๋ฌด์ธ๊ฐ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด์ผ๋ง ๋ค์ ๋๋์ ๋ฐ๋ ์์ฝ ์๋ฒ ๋ง๊ณ ์ค์ ๋ก ์ฑํ ํ๋ก๊ทธ๋จ์ ๋ง๋ ๋คํ๋ฉด, ํด๋ผ์ด์ธํธ์์ ์๋ฌด๊ฒ๋ ๋ณด๋ด์ง ์์๋ ๋ฉ์ธ์ง๋ฅผ ๋ฐ์ ์ ์์ด์ผํ๋ค. ๋ฐ๋ผ์ ํด๋ผ์ด์ธํธ ํด๋์ค์์๋ ํต์ ์ฉ ์ฐ๋ ๋๋ฅผ ํ๋ ๋ง๋ค์ด์ ๋ณด๋ด๋์ฉ ์ฐ๋ ๋ ๋ฐ๋ ์ฉ ์ฐ๋ ๋๋ฅผ ๋ฉ์ธ์ฐ๋ ๋ ํ๋์ ํด๋์ค๋ฅผ ์๋ก ๋ง๋ ์ฐ๋ ๋, 2๊ฐ์ง๋ก ์คํ๋ผ์ผ ํ๋ค.
์๋ฒ ํด๋์ค ์ฝ๋
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
import java.io.*;
import java.net.*;
public class Server
{
public static void main(String[] args)
{
try {
ServerSocket ss = new ServerSocket(1234);
while(true) {
System.out.println("์๋ฒ์์ผ ๋๊ธฐ์ค");
Socket s = ss.accept(); //๋ฌดํ๋๊ธฐ
System.out.println("ํด๋ผ์ด์ธํธ ์ ์๋จ");
new CommThread(s).start();
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("์๋ฒ ์ข
๋ฃ");
}
//๋ด๋ถ ํด๋์ค๋ก ๊ตฌํํ ํต์ ์ฉ ์ฐ๋ ๋
static class CommThread extends Thread {
private Socket s;
private PrintWriter pw;
private BufferedReader br;
private boolean loginpass;
CommThread(Socket s) {
this.s = s;
try {
OutputStream os = s.getOutputStream();
OutputStreamWriter ow = new OutputStreamWriter(os);
this.pw = new PrintWriter(ow);
pw.println("์ ์ ์ฑ๊ณต");
pw.flush();
loginpass = login();
}catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
if(loginpass) {
try {
while(true) {
String m = br.readLine();//ํด๋ผ์ด์ธํธ์์ ์จ ๋ฉ์์ง ๋ฐ๊ธฐ
System.out.println("ํด๋ผ์ด์ธํธ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:"+m);
pw.println(m);//ํด๋ผ์ด์ธํธ๋ก ๋ฉ์์ง ๋ณด๋ด๊ธฐ
pw.flush();//๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๋ฉ์์ง ๋น์ฐ๊ธฐ
}
}catch (Exception e) {
e.printStackTrace();
}
}
System.out.println("ํต์ ์ฐ๋ ๋ ์ข
๋ฃ");
}
private boolean login() {
try {
InputStream is = s.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
this.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();
return true;
}
}catch (IOException e) {
e.printStackTrace();
}
return false;
}
}
}
|
cs |
ํด๋ผ์ด์ธํธ ํด๋์ค ์ฝ๋
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class Client
{
public static void main(String[] args)
{
try {
Socket s = new Socket("127.0.0.1",1234);
System.out.println("์๋ฒ์ ์ ์ฑ๊ณต");
//์๋ฒ์์ ์ ์กํ ๋ฉ์์ง๋ฅผ ์์ ํ๋ค
InputStream is = s.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
new ClientThread(s, br).start(); //๋คํธ์ํฌ ์ถ๋ ฅ ์ฐ๋ ๋
while(true) {//๋คํธ์ํฌ ์
๋ ฅ ์ฐ๋ ๋
String m = br.readLine();
System.out.println("์๋ฒ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:"+m);
}
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("ํด๋ผ์ด์ธํธ ์ข
๋ฃ");
}
//๋คํธ์ํฌ ์ถ๋ ฅ ๊ธฐ๋ฅ์ ๋ด๋นํ ํด๋ผ์ด์ธํธ ์ธก ์ฐ๋ ๋
static class ClientThread extends Thread {
Socket s;
PrintWriter pw;
BufferedReader br;
boolean loginpass;
ClientThread(Socket s,BufferedReader br){
this.s=s;
this.br=br;
try {
String msg = br.readLine();
System.out.println("์๋ฒ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:"+msg);
if(msg.equals("์ ์ ์ฑ๊ณต")) {
OutputStream os = s.getOutputStream();
OutputStreamWriter ow = new OutputStreamWriter(os);
this.pw = new PrintWriter(ow);
loginpass = login();
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void run() {
Scanner kbd = new Scanner(System.in);
while(true) {
System.out.println("์
๋ ฅํ ๋ฉ์์ง:");
String line = kbd.nextLine().strip();
pw.println(line);
pw.flush();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
private boolean login() {
pw.println("Smith 12345");
pw.flush();
String loginresult =null;
try {
loginresult = br.readLine();
System.out.println("๋ก๊ทธ์ธ ๊ฒฐ๊ณผ:"+loginresult);
} catch (Exception e) {
e.printStackTrace();
}
if(loginresult.equals("๋ก๊ทธ์ธ ์ฑ๊ณต")) {
return true;
}else {
return false;
}
}
}
}
|
cs |
์๋ฒ ํด๋์ค ์ฝ์:
์๋ฒ์์ผ ๋๊ธฐ์ค
ํด๋ผ์ด์ธํธ ์ ์๋จ
์๋ฒ์์ผ ๋๊ธฐ์ค
ํด๋ผ์ด์ธํธ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:hello
ํด๋ผ์ด์ธํธ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:Bye
ํด๋ผ์ด์ธํธ ํด๋์ค ์ฝ์:
์๋ฒ์ ์ ์ฑ๊ณต
์๋ฒ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:์ ์ ์ฑ๊ณต
๋ก๊ทธ์ธ ๊ฒฐ๊ณผ:๋ก๊ทธ์ธ ์ฑ๊ณต
์
๋ ฅํ ๋ฉ์์ง:
hello
์๋ฒ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:hello
์
๋ ฅํ ๋ฉ์์ง:
Bye
์๋ฒ์ธก์์ ๋ณด๋ด์จ ๋ฉ์ธ์ง:Bye
์
๋ ฅํ ๋ฉ์์ง:
ํด๋ผ์ด์ธํธ ํด๋์ค์ ๋คํธ์ํฌ ์ ๋ ฅ ์ฐ๋ ๋์ ๋คํธ์ํฌ ์ถ๋ ฅ ์ฐ๋ ๋๋ฅผ ๋ณํ ์คํ์ด ๊ฐ๋ฅํด์ก๋ค.
์ฌ์ฉ์๊ฐ ๋ฉ์์ง๋ฅผ ๋ณด๋ด ์์ ์ด ์๋ ํ์ธ์๊ฒ ๋ณด๋ด๊ธฐ ์ํด์ ์์ผ๊ณผ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ด ๋ง๋ ์คํธ๋ฆผ์ ์จ์ผํ๋ค.
๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ฉด
๊ฐ ์คํธ๋ฆผ์๋ ์์ผ์ด ์๋ค.
ํด๋ผ์ด์ธํธ1์์ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด ํด๋ผ์ด์ธํธ2์์ ์์ ํ๋ค๊ณ ์๋ฅผ ๋ ๋ค๋ฉด,
ํด๋ผ์ด์ธํธ1์ ์ถ๋ ฅ์คํธ๋ฆผ์์ ๋ฐ์ดํฐ๊ฐ ๋๊ฐ ์๋ฒ ์ปดํจํฐ์ ์ ๋ ฅ ์คํธ๋ฆผ์์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ณ ์๋ฒ์ปดํจํฐ์ ์ถ๋ ฅ ์คํธ๋ฆผ์์ ๋ฐ์ดํฐ๊ฐ ๋ฐ์ ๋์ด ํด๋ผ์ด์ธํธ2์ ์ ๋ ฅ์คํธ๋ฆผ์์ ์ก์ ํ๋ค.(๊ทธ๋ฆผ์์ ์ด๋ก์ ๋ผ์ธ ์ฝ์ค)
์ฌ๋ฌ๋์ ์ปดํจํฐ๊ฐ ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ ค๋ฉด ์๋ก ๋ง์ ์์ผ์ด ํ์ํด์ง๋ค.
๋ชจ๋ ์ฌ๋ํํ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๊ฒ(๋ธ๋ก๋์บ์คํ )
์๋ฒ ํด๋์ค ์ฝ๋
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
import java.io.*;
import java.net.*;
import java.util.ArrayList;
public class Server
{
static ArrayList<PrintWriter> out = new ArrayList<PrintWriter>();
public static void main(String[] args)
{
try {
ServerSocket ss = new ServerSocket(1234);
while(true) {
System.out.println("์๋ฒ์์ผ ๋๊ธฐ์ค");
Socket s = ss.accept(); //๋ฌดํ๋๊ธฐ
System.out.println("ํด๋ผ์ด์ธํธ ์ ์๋จ");
new CommThread(s).start();
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("์๋ฒ ์ข
๋ฃ");
}
//๋ด๋ถ ํด๋์ค๋ก ๊ตฌํํ ํต์ ์ฉ ์ฐ๋ ๋
static class CommThread extends Thread {
private Socket s;
private PrintWriter pw;
private BufferedReader br;
private boolean loginpass;
CommThread(Socket s) {
this.s = s;
try {
OutputStream os = s.getOutputStream();
OutputStreamWriter ow = new OutputStreamWriter(os);
this.pw = new PrintWriter(ow);
pw.println("์ ์ ์ฑ๊ณต");
pw.flush();
loginpass = login();
}catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void run() {
if(loginpass) {
try {
PrintWriter toClient = null;
while(true) {
String m = br.readLine();//ํด๋ผ์ด์ธํธ์์ ์จ ๋ฉ์์ง ๋ฐ๊ธฐ
for(int i=0;i<out.size();i++) {
toClient = out.get(i);
toClient.println(m);//๋ฐ์ ๋ฉ์ธ์ง ๋ฃจํ๋ฅผ ํตํ์ฌ ๋ชจ๋ ์ฌ๋ํํ
๋ณด๋ด๊ธฐ
toClient.flush();
}
}
}catch (Exception e) {
System.err.println("ํด๋ผ์ด์ธํธ ๋๊ฐ");
out.remove(pw);
}
}
System.out.println("ํต์ ์ฐ๋ ๋ ์ข
๋ฃ");
}
private boolean login() {
try {
InputStream is = s.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
this.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")) {
out.add(pw); //๋ชจ๋ ์ถ๋ ฅ์ฉ ์คํธ๋ฆผ์ ํ๊ฐ์ ๋ฆฌ์คํธ์ ์ ์ฅํ๋ค.
pw.println("๋ก๊ทธ์ธ ์ฑ๊ณต");
pw.flush();
return true;
}
}catch (IOException e) {
e.printStackTrace();
}
return false;
}
}
}
|
cs |
54์ด ~57์ด์ ์์ ํ์ฌ ํด๋ผ์ด์ธํธ ๋ฐ์ ๋ฉ์์ง๋ฅผ ๋ฐ๋ณต๋ฌธ์ ํตํด ๋ชจ๋ ํด๋ผ์ด์ธํธ์๊ฒ ์ ์กํ๋ค.
78์ด - ํด๋ผ์ด์ธํธ๊ฐ ํ๋ช ์ฉ ์๊ธธ๋ ๋ง๋ค ์ถ๋ ฅํ ํ๋ฆฐํธ๋ผ์ดํฐ๋ฅผ list์ ์ถ๊ฐํด์ค๋ค.
62์ด - ํด๋ผ์ด์ธํธ๊ฐ ๋๊ฐ์ ๋ ํด๋น ์ถ๋ ฅ์คํธ๋ฆผ๋ ์ญ์ ์์ผ์ค๋ค.
ํด๋ผ์ด์ธํธ๋ฅผ ํ๋ ๋ ์คํํ์ฌ ์ฒซ๋ฒ์งธ ํด๋ผ์ด์ธํธ์์ ๋ณด๋ธ ๋ฉ์ธ์ง๊ฐ ๋๋ฒ์งธ ํด๋ผ์ด์ธํธ์์๋ ์์ ๋๋์ง ํ์ธํ ์ ์๋ค.
์ฒซ๋ฒ์งธ ํด๋ผ์ด์ธํธ ์ฝ์ ๊ฐ:
๋๋ฒ์งธ ํด๋ผ์ด์ธํธ ์ฝ์ ๊ฐ:
์ฒซ๋ฒ์งธ ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ณด๋ธ ๋ด์ฉ์ ๋๋ฒ์งธ ํด๋ผ์ด์ธํธ์์๋ ํ์ธํ ์ ์๋ค.
๋๋ฒ์งธ ํด๋ผ์ด์ธํธ๋ฅผ ์ข ๋ฃ ์ํค๊ณ ๋์ ์๋ฒ ํด๋์ค ์ฝ์ ๋ด์ฉ:
ํด๋ผ์ด์ธํธ๊ฐ ๋๊ฐ๋ฉด ํด๋น br.readLine()์ ๋ค์ด์ฌ ์ ๋ณด๋ ์์ด์ ธ ๊ฐ์ ์ธํธ์ pw๋ ํ์๊ฐ ์์ด์ ธ์ ์๋ฌ๊ฐ ๋จ๊ฒ๋๋ค.
๋ฐ๋ผ์ ํด๋ผ์ด์ธํธ๊ฐ ๋๊ฐ๋ฉด ํด๋น br๊ณผ ๊ฐ์ ์ฐ๋ ๋์๋ pw๋ฅผ ์ฐพ์ ์์ ์ค๋ค.(์๋ฒ ํด๋์ค 62์ด)
๋๊ธ