게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
TCP 통신에서 메시지를 제 때 못받는 문제가 있어서 드리는 질문...
게시물ID : programmer_6726짧은주소 복사하기
작성자 : Weltenbaum
추천 : 0
조회수 : 435회
댓글수 : 10개
등록시간 : 2014/11/25 11:19:57
옵션
  • 본인삭제금지
채팅처럼 서버 1 : 클라이언트 N 구조로 지금 설계가 되어 있고, 서버와 클라이언트가 제어 메시지랑 데이터 메시지를 계속 주고받으면서 처리하는 시스템입니다. 이를 위해서 서버에는 TCP 소켓으로 통신을 제어하는 쓰레드를 람다 함수를 이용해서 생성하고, IP + Port를 키값으로 하여 쓰레드 정보를 담을 수 있도록 Dictionary 자료구조를 정의해서 쓰고 있는데요.

현재 문제가 되는 부분이 잘 될 때는 종료할 때까지 매끄럽게 쭉 진행이 되는데, 어쩌다 한 번씩 클라이언트에서 발송한 메시지를 서버에서 수신을 못하고 멈춰버리는 증상이 있습니다. 그런데 이 상태에서 재실행을 하기 위해 전체 리셋하면 그제서야 서버쪽에서 아까 받았어야 될 메시지를 수신했다고 로그를 찍어줍니다.

처음에는 제가 무선 네트워크로 연결해서 발생하는 문제인가 했는데 유선으로 해도 똑같은 증상이 있더군요. 문제를 일으키는 정형화된 패턴이 있으면 저도 속 시원하게 원인 파악하고 해결할텐데 그건 또 아니라서 골치 아프네요.

일단 현재 제가 생각하기로는 수작업으로 어플리케이션 레벨에서 수신확인 및 재전송을 구현해야 될 것으로 판단하고 있습니다. 그런데 다른 해법이 있을 것 같은데 이걸 굳이 이렇게 해야되나란 생각이 들어서 좀 조언을 구해보고자 합니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호