๊ธฐ์ด ํํ! ๋ ํ๊ฒ ์์ํ๋ Java Part 3(ํ) : ์์ผ๊ณผ ํ์ผ I/O
java.io๋ฅผ ์์์ผ๋ก NIO ๋ฐ NIO.2 ๊ธฐ๋ฐ์ ๊ณ ์ฑ๋ฅ ์ /์ถ๋ ฅ ์์คํ ์ ๊ฐ๋ฐ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค. ๋ฌด์๋ณด๋ค ํ์ผ ์ /์ถ๋ ฅ์ ๋๋ด๋ ์๊ฐ ๊ณ ์ฑ๋ฅ ์๋ฒ ๊ฐ๋ฐ๊น์ง ๋ค์ผ๋ก ๋๋ผ ์ ์๋๋ก ํด๋๋ฆฝ๋๋ค!
์๊ฐ์ 631๋ช
๋์ด๋ ์ค๊ธ์ด์
์๊ฐ๊ธฐํ ๋ฌด์ ํ
- ํด๊ฒฐ
08_chatServerSelector ์ฝ๋ ์ค ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํ์ฌ ๋ฌธ์ ๋จ๊น๋๋ค.
08_chatServerSelector ์์ค์ฝ๋์ ๋ง์ง๋ง ๋ถ๋ถ์ธ ๋ธ๋ก๋์บ์คํ ํ๋ ํจ์ sendMessageAll์์ ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค. ์ ๊ณตํ์ฌ์ฃผ์ ์์ค ์ฝ๋๋ฅผ ์์ฑํ๊ณ , ์ฌ๋ฌ ํด๋ผ์ด์ธํธ๋ฅผ ์คํ์์ผ๋ณด์์ต๋๋ค. ์ฐ๊ฒฐ์
java๋คํธ์ํฌtcpsocket์ ํ๋ฏผ
ใป
ํ ๋ฌ ์
0
50
2
- ํด๊ฒฐ
"์ด์ ์๊ฐ ๊ฐ์ ์์ ์ฝ๋ ์คํ์ ์ 0bytes๊ฐ ๋์ค๋์ง"์ ๋ํ ์ค๋ช ์ ๋ํ ์ง๋ฌธ ๋จ๊น๋๋ค!
1:11๋ถํฐ ์ด์ ์๊ฐ์ ์์ ๋ฅผ ์คํํ์ ๋, ์ 0bytes๊ฐ ๋์ค๋์ง ์ค๋ช ํด์ฃผ์๋ ๋ถ๋ถ์ ๋ํ ์ง๋ฌธ์ ๋๋ค! ์ ๊ฐ ํผ์์ ์๊ฐํด๋ดค์ ๋๋
javabuffer์กฐ์์
ใป
2๋ฌ ์
0
42
2
- ํด๊ฒฐ
reader.readLine() == null ์๋ฏธ
TCP ์์ฝ ์๋ฒ ์ค์ตํ๋ ์์ค์ ๋ฐ๋ณต๋ฌธ ์กฐ๊ฑด์์ ๊ถ๊ธํ๊ฒ ์์ด์ ์ง๋ฌธ ๋จ๊น๋๋ค. while((msg = reader.read
java๋คํธ์ํฌtcpsocketinsub2004
ใป
7๋ฌ ์
0
65
2
- ํด๊ฒฐ
์๋์ฐ IOCP ๊ฐ DMA ๋ ๋ค๋ฅธ ๊ฐ๋ ์ธ๊ฐ์?
์์๋ง ๋ณด๋ฉด ๋คํธ์ํฌ ํ๋์จ์ด์์ VMS ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ผ๋ก ๋ฐ๋ก ๋ณด๋ด์ฃผ๋๊ฑฐ๋ก ๋ณด์ด๋๋ฐ ์ด๊ฒ DMA ๋ ๋ค๋ฅธ ๊ฐ๋ ์ธ๊ฐ ์ถ์ด์ ์ง๋ฌธ ๋จ๊น๋๋ค.
java๋คํธ์ํฌtcpsocketํ๋
ใป
7๋ฌ ์
0
85
1
- ํด๊ฒฐ
์์ผ์ ๋ณธ์ง์ ํ์ผ์ด๋ค.
์๋ ํ์ธ์! ๊ฐ์ ์ ๋ณด๊ณ ์์ต๋๋ค.๊ฐ์ ๋ด์ฉ์ค - "File + a"๊ฐ ์๊ณ - "a"์ ํด๋น๋๋ ๋ด์ฉ์ด ๋คํธ์ํฌ(port๋ฒํธ, IP์ฃผ์)๊ฐ ๋๋ฉด
java๋คํธ์ํฌtcpsocketinsub2004
ใป
7๋ฌ ์
0
69
2
- ํด๊ฒฐ
ํ์ผ ์ ๊ทผ ์ค๋ฅ (๊ฒฝ์ ์กฐ๊ฑด) <-- Lock ๊ด๋ จ ์ง๋ฌธ
<img src="https://cdn.inflearn.com/public/files/posts/09864b49-9d3d-48f1-b89e-c97289ed659c/e51c5705-9d2b-4b0b-9161-0a3aa175f4bf.png" media-type="img"
java๋คํธ์ํฌtcpsocket๋ฆฌ๋
ใป
8๋ฌ ์
0
76
1
- ํด๊ฒฐ
ํ์ฅ์์ ๋ํ์ฌ.. ๋ฌธ๋ ๊นจ๋ฌ์๊ฒ ๋ง๋์ง ํ์ธ.
์ ๊ฐ ์์ ์ ํ์ผ์ ํ์ฅ์๋ฅผ ์์๋ก ๋ฐ๊พธ๋๊น ๋ฐ๋์ด์ง์ ์ด ์์๊ฑฐ๋ ์..๊ทธ๋ฐ๊ฒ๊ณผ ๋ฐฐ์ด๊ฒ์ ์ ์ถํด๋ณด๊ฑด๋ฐ... <p style="text-
java๋คํธ์ํฌtcpsocket๋ฐ๋ผ๋๋ฐ๋ผ๋
ใป
9๋ฌ ์
0
90
2
- ํด๊ฒฐ
๊ฒ์๊ณผ ์คํธ๋ฆผ์ ๋ํด์ (์ดํดํ๊ฒ ๋ง๋์ง ํ์ธ ์ง๋ฌธ)
์.. ์ ๊ฐ ์ดํดํ๊ฒ ๋ง๋์ง ํ์ธ์ฐจ ์ง๋ฌธ๋๋ฆฝ๋๋ค. 1) ์ปดํจํฐ๊ฐ ์ผ์ง๊ณ ๊ฒ์ํ์ผ์ ์ฝ์ผ๋ฉด inputStream์ด๋ผ๋ ๊ฑธ๋ก ํ์ผ์ ์ค์ ํ ๋จ์
java๋คํธ์ํฌtcpsocket๋ฐ๋ผ๋๋ฐ๋ผ๋
ใป
9๋ฌ ์
0
85
2
- ํด๊ฒฐ
mac ์ฌ์ฉ์ ํด๋ ์์ฑ ๊ฒฝ๋ก ๋ณ๊ฒฝ
String tmpPath = "C:/Tmp";mac์ ์์ ์ ์๋ ๊ฒฝ๋ก๊ฐ ๋ง์ง ์์ ์๋ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค
java๋คํธ์ํฌtcpsocket๊ฐ์ค์
ใป
10๋ฌ ์
1
112
2
- ํด๊ฒฐ
createNewFile() ๋ฉฑ๋ฑ์ฑ
๋ฐฉ๊ธ ์์ ๋ฅผ ์ฌ๋ฌ๋ฒ ์คํํ๋ฉด ์ด๋ป๊ฒ ๋๋์ง ๊ถ๊ธํด์ ๋ช๋ฒ ์คํํด๋ดค๋๋ฐ, ์ต์ด์ ์์ฑ๋ ์๊ฐ ๊ทธ๋๋ก ํ์ผ์ด ์ ์ง๋ผ์๋ค์. <p style="text-al
java๋คํธ์ํฌtcpsocket๊ฐ์ค์
ใป
10๋ฌ ์
0
67
2
- ํด๊ฒฐ
์๋ชป ์์ฑ
์๋ชป ์์ฑ
java๋คํธ์ํฌtcpsocket์์ฑ์ ์์
ใป
10๋ฌ ์
0
89
2






