차근차근/JAVA JSP

소켓통신이란

예쁜꽃이피었으면 2014. 7. 26. 01:51

http://yobine.tistory.com/50

 

os상 소켓의 특성

1) 소켓은 프로세스가 decriptor를 참조하는 동안 존재

2) 소켓을 file decriptor나 또는 비슷한 성질을 가진 장치들이 참조한다. 이때 적절한 subrutine을 사용해주면 읽고 쓰고 선택이 가능하다

3) 소켓은 주어진 이름으로 2개가 생성되며, 다른 도메인상의 소켓 통신의 랑테뷰.

    즉 연결을 위해 접근을 허용하여 상호가느이 메세지를 전달하기 위해 사용된다.

 

 

 

http://blog.naver.com/PostView.nhn?blogId=goldenkingll&logNo=70106915167

TCP Client

1) 소켓을 생성

2) 서버로 connect

3) 접속이 성공하면 read 및 write 함수를 통해서 패킷을 주고 받는다.

4) 사용을 마치면 close로 소켓을 닫는다.

 

TCP Server

1) 듣기 소켓을 생성

2) bind한다(내선 부여)

3) listen 한다(내선 연결)

4) accept() 클라이언트가 connect할 경우 소켓을 생성하고 연결한다.

5) read와 write함수를 이용해 메시지를 주고 받는다.

6) 사용된 연결 소켓을 닫는다.

7) 사용을 마쳤을 경우 듣기 소켓을 닫는다.

 

 

 

http://blog.naver.com/PostView.nhn?blogId=kkomzi7179&logNo=130002859474&widgetTypeCall=true

1. 연결상태를 어떻게 체크하는가?
- 일단, 소켓통신에는 크게 TCP 방식과 UDP 방식이 있습니다. TCP 방식과 UDP 방식의 가장 큰
차이점은 TCP는 \'연결\'을 한다는 것이고, UDP는 \'연결\'을 하지 않는다는 것입니다.
따라서, 연결상태를 체크한다는 것은 당연히 TCP 방식을 사용할 경우의 이야기이겠지요.
그렇다면, TCP 방식으로 소켓통신을 할 때 \'연결상태\'를 어떻게 체크할까요?
바로 \'3-Way Handshaking\' 기법을 사용합니다. 3-Way Handshaking이 무엇이냐면, 
두 PC는 통신을 하기 전에 서로 \'통신 시작한다\'라는 신호를 주고 받는데, 이것이 3단계로
이루어집니다.

1단계: A PC에서 B PC로 SYN 패킷을 보낸다.(나 너랑 통신할래~)
2단계: B PC가 이 SYN 패킷을 받아서 A PC에게 ACK 패킷을 보낸다.(알았어 통신하자~)
3단계: A PC가 이 ACK 패킷을 받아서 다시 B PC에게 ACK 패킷을 보낸다.(그래 이제 간다~)

이 3단계가 완료되면 \'연결상태\'가 되며, 연결이 끊어지기 전까지는 쭈욱 연결상태가 유지됩니다.
연결이 끊어지는 경우는 2가지가 있는데, 하나는 통신을 완료한 후 연결을 종료하는 것이고,
다른 하나는 임의의 장애(?)가 발생하여 강제로 종료되는 것입니다.
통신 완료 후 연결 종료는 연결을 종료하려는 PC가 상대 PC에게 FIN 패킷을 보냄으로써 이루어집니다.
그러나, 장애로 인하여 연결이 종료되는 경우도 있는데, 이 경우 한 PC가 일정 시간 이상 다른 PC의
신호에 응답하지 않으면 연결이 강제로 종료됩니다. 그리고 이때 사용되는 신호란 특별한 것이 아니라,
서로 데이터를 주고 받다가 일정 시간 이상 데이터가 안오면 데이터를 못받은 PC가 \

 

 

 

 

http://blog.daum.net/ossogood/8435446

(소스 있음)

 

http://ultteky.egloos.com/3945848

(소스 있음)

 

 


반응형

'차근차근 > JAVA JSP' 카테고리의 다른 글

어노테이션(Annotation)  (0) 2014.07.26
인자값, 파라미터  (0) 2014.07.26
import  (0) 2014.07.26
interface  (0) 2014.07.26
Java에서 extends와 implements 의 정의  (0) 2014.07.26