Q&A

  • Tcp 소켓통신에서 서버측에서 연속적으로 보낸 두개의 패킷이 붙어서
Tcp 소켓통신에서 서버측에서 연속적으로 보낸 두개의 패킷이 붙어서 수신이 됩니다.
Trace로 한단계씩 실행해보면 떨어져서 받아지는데 실행만 하면 달라붙어
인식을 할 수가 없어요


   서버측 송신

<!--CodeS-->
    V_Msg := user_info(userid);
     For i:= 0 to ServerSocket1.Socket.ActiveConnections -1 do
        ServerSocket1.Socket.Connections[i].SendText(V_Msg);
     V_Msg := roomlist(Roomid);
     For i:= 0 to ServerSocket1.Socket.ActiveConnections -1 do
        ServerSocket1.Socket.Connections[i].SendText(V_Msg);
<!--CodeE-->
3  COMMENTS
  • Profile
    이정욱 2006.08.10 04:22
    패킷 단위로 처리 하는게 아닌, 프로토콜을 구현하셔서 사용하셔야 합니다.

    즉, 그 신호의 시작과 끝을 알려주는 특정 케릭터를 정하셔서 그것을 토대로 끊어 내셔야 합니다.

    모든 네트웍은 보내진 순서대로 온다는 보장이 없습니다.


  • Profile
    늙은래머 2006.08.10 17:20
    답변에 감사드립니다.
    시작과 끝을 요상한 문자들로 붙혀서 날려보내고
    수신측에서 다시찾아 나눴더니 처리는 잘 됩니다.
    근데 중간에 중간이 사라지는 경우는 없나요 ?
    사이즈를 체크해서 보내야 하는지 궁금하지만 할수 없네요
    급한데로 떼워놓고 통신관련 공부를 처음부터 천천히 해야겠네요

    아무튼 감사합니다.
    많은 도움되었습니다.. 다들 행복코딩하세요..
    이제 나이들어서인지 대갈빡도 안움직이네요. 쩝~

  • Profile
    권태훈 2006.08.09 23:51
    달라 붙어있거나 중간에 빠져서(혹은 띄엄띄엄) 오는걸 처리해줘야 합니다.

    그래서 버퍼풀을 중간에 만들고 처리하게 되죠.

    통신의 기초입니다.