Java_Spring Framework

Java Socket 프로그래밍 중 삽질...

anyjava 2011. 2. 25. 16:38

회사에서 개발 하던중, Java로 클라이언트 프로그램을 개발할 필요가 생겼다.
졸작을 할때, 소켓통신을 이용하여 오목게임을 만든적도 있지만 그때는 정말 허접하게 만들었다는 생각이 든다.
물론, 실무와서 보는게 많게 되어서 그렇게 된것이지만...

소켓 통신에 대해서 내 머릿속에 있는 걸로 이야기 할려고 한다. 100% 정확하다고는 말할 수 없기에 의심하는 눈초리로 보았으면 한다.

1. 소켓동작 원리
  직접 설명하는거 보다 아래 링크로 설명하는게 제일 정확하고 빠를듯 하다.


2. 삽질.
  - 서버에서 커넥션을 끊을 경우!?
     증상 : 메시지를 끝까지 다읽었는줄 알았지만, 계속해서 read() 해서 무한루프에 빠지는 현상이 발생 했다. 이거때문에 상당히 곤란함을 겪었다. 원인은 바로 서버측에서 커넥션을 끊었기 때문이다. write의 경우 IOException 이 발생하여 귾고 다시연결하면 되지만, 이건 예외도 발생하지 않고 계속 널문자(0x00)만 읽어와서 상당히 곤란하게 될수도 있으니, 꼭 널문자가 읽어진다면 reconnect 를 하는 방법을 고려해 볼만 하다.

  - 클래스 구조. (대략적)
계속 해서 시간날때 작성하겠습니다.. (-_-)(_ _) 꾸벅~
반응형