packet : ํจํท ๋ฐฉ์์ ์ปดํจํฐ ๋คํธ์ํฌ๊ฐ ์ ๋ฌํ๋ ๋ฐ์ดํฐ์ ํ์ํ๋ ๋ธ๋ก
==================================
**์ปดํจํฐ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ
- ์ฐ๊ฒฐ : Socket
- ๋ฐ์ดํฐ ์ก.์์ : Stream
1. ํฌํธ์ด๊ธฐ
ServerSocket server = new ServerSocket(50000);
2. ์๋ฒ๋ก ์ ์์ ์๋
Socket client = new Socket("์๋ฒip", 50000);
3. ์ ์์ ์์ผ์ด ๋ค์ด์ค๋ฉด ์ ์์ ์์ผ์ ๋ฐ๋๋ค.
Socket socket = server.accept( );
4. (Server๋ณด๋ด๋ ์ชฝ)์์ผ์์ ์ถ๋ ฅ์คํธ๋ฆผ ์ป๊ธฐ
OutputStream os = socket.getOutputStream( );
OutputStream์ String์ ์ฝ์ ์ ์๋ ๋ฉ์๋๊ฐ ์๊ธฐ ๋๋ฌธ์
DataOutputStream์ ์ฐ๊ฒฐํด์ค์ผ ํ๋ค. (์๋์ฒ๋ผ)
DataOutputStream dos = new DataOutputStream(socket.getOutputStream( ));
//8bit Stream์ ์ฌ์ฉ ํ๊ธฐ์ packet์ 8bit์ด๋ค
(Client๋ฐ๋ ์ชฝ)์์ผ์์ ์
๋ ฅ์คํธ๋ฆผ ์ป๊ธฐ
InputStream is = socket.getInputStream( ); ๋๊ฐ์ด DateInputStream์ผ๋ก ์ฐ๊ฒฐ
DataInputStream dis = new DataInputStream(socket.getInputStream( ));
5. (Server๋ณด๋ด๋ ์ชฝ)์คํธ๋ฆผ์ ๋ฐ์ดํฐ ์ฐ๊ธฐ
dos.writeUTF("ํ๊ธ");
(Client๋ฐ๋ ์ชฝ)์คํธ๋ฆผ์ ๋ฐ์ดํฐ ์ฝ๊ธฐ
String msg = dis.readUTF( );
6. ์คํธ๋ฆผ์ ๋ฐ์ดํฐ๋ฅผ ๋ชฉ์ ์ง(Stream์ด ์ป์ด์ง ์์ผ)๋ก ๋ถ์ถ
์์ผ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๋ฉด ์ฐ๊ฒฐ๋ ์์ผ์ผ๋ก ํจํท์ ์๋ค.
==========================
**Thread
- ๋์์ ์ผ์ ์ํํด์ผ ํ ๋. (๋์์ method๋ฅผ ํธ์ถํด์ผ ํ ๋)
- Multi Thread ์ง์.
- ์์ Process.
- cpu scheduling( ์๋ถํ , ์ ์ ํ )
์๋ถํ ( time sharing ) - OS์์ ์ฌ์ฉ, ํ๋ก์ธ์ค ์ด์ธ์ ์์
๊ด๋ฆฌ์ ํ์. ์์
๊ด๋ฆฌ์๊ฐ ๋งค์ฐ ์ค์.
์ ์ ํ ( running time ) - Java์์ ์ฌ์ฉ. ์์
๊ด๋ฆฌ์๊ฐ ํ์ ์๋ค. ๋จผ์ ์์ฑ๋๋ Process๊ฐ ๋จผ์ ์ฒ๋ฆฌ๋๋ค๊ฐ ์์๊ฐ ํญ์ ์์ธ๋ค.
- Thread๋ ์คํํ ๋๋ง๋ค ์์๊ฐ ๋ฌ๋ผ์ง๋ค.
- ์ข
๋ฃ์๊ฐ์ ์ ์ ์๋ค.
**Thread ์ฌ์ฉ ๋ฐฉ๋ฒ 2๊ฐ์ง
* ์์
1. Thread๋ฅผ ์์๋ฐ๋๋ค.
public class Test extends Thread{
2. run method override
public void run(){
3. ๋์์ ์คํ๋์ด์ผ ํ ์ฝ๋ ์์ฑ.
}
4. ๊ฐ์ฒด์์ฑ
ํด๋์ค๋ช
๊ฐ์ฒด๋ช
= new ์์ฑ์( );
Test t = new Test( );
5. start( )๋ฅผ ํธ์ถํ์ฌ run( )๊ฐ ๋์์ ๋์ํ๋๋ก ํ๋ค.
t.start( );
===================================
*Runnable ๊ตฌํ
1. Runnable interface๋ฅผ ๊ตฌํ)
public class Test implements Runnable{
//2. abstract method override
public void run(){
//3.Thread๋ก ๋์ํด์ผ ํ ์ฝ๋
}
//4. ํด๋์ค ๊ฐ์ฒดํ
Test t = new Test( );
//5. Runnable ๊ตฌํํ ๊ฐ์ฒดํ has a ๋ก Threadํด๋์ค๋ฅผ ๊ฐ์ฒดํ ํ๋ค.
Thread th = new Thread( t );
//6. Threadํด๋์ค์ start ํธ์ถ. ( has a ๊ด๊ณ์ ๊ฐ์ฒด๊ฐ ๊ตฌํํ run( )๊ฐ ํธ์ถ)
th.start( );
์์์ ๋จ์ผ์์๋ฐ์ ๋์ง ์๊ธฐ ๋๋ฌธ์, ๊ตฌํ์ ๋ ๋ง์ด ํ๋ค.