728x90
반응형
아마도 Socket이 timeout되서 그런것 아닐까요? Socket 프로그래밍을 직접해보지 않은터라. Java API에 보면 Socket Class가 있는데

Socket 연결 방법이 두가지가 있는데 연결시 timeout을 정하셨나요?

socket.connect(SocketAddress endpoint)
socket.connect(SocketAddress endpoint, int timeout) 

두번째일경우 timeout이 지나면 연결이 해제될수 있어요. 첫번째 연결 방법을 사용하시거나 getSoTimeout()/setSoTimeout()을 사용해 timeout을 바꿔보세요. timeout을 0으로 정할시 무한 timeout이라네요. 또 getKeepAlive()와 setKeepAlive() 메소드가 있거든요.
getKeepAlive()로 KeepAlive가 적용 되있는지 확인해보시고 아닐 경우 setKeepAlive(true)로 set하시면 될듯.

하지만 위 두 방법을 쓰실경우 꼭 수동으로 Socket을 닫아주셔야할것입니다.

socket.close()

--
아니면 메세지를 보낼때마다 확인할수도 있고요.

if(!socket.isConnected())
  socket.connect(...)

 

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,