Q&A

  • ClientSocket 에서 ReceveText에서 많은 데이타를 받으면 중간에 끊어져요 알려주세요

Clientsocket에서 접속자 리스트를 받고 있는데요

문제는 접속자 100명일때는 받는데 100명이 넘어가면  받다가 중간에 데이타가

끊어집니다.

1000명의
3  COMMENTS
  • Profile
    이승민 2005.01.10 18:29
    여러 방법이 있겠지만 보내는 쪽에서 1024byte 나 2048 byte 씩 잘라보내고 받는 쪽에서 합치는 방식이 있을수 있고요, 보내는 쪽에서 Stream 형식으로 만들어서 Stream 을 보내고 받는쪽에서 Stream 형식으로 받아 데이터를 분석하는 방법도 있습니다.

    프로그램 하는 사람에 따라 여러 방식이 있을수 있겠죠.

    즐프되세요

  • Profile
    111 2005.01.10 18:39

    네 답변 감사합니다

    그럼 우선1024 짤라서 보내고 받는 쪽에서 합치는게 낳은건지...!

    아니면  stream 로 하는게 낳른건지..!

    조금이나마 알려주셨으면 감사하겠습니다.1


  • Profile
    이승민 2005.01.10 19:01
    잘라 보내기를 하면 그것에 맞는 프로토톨 정의가 다시 필요하겠죠.

    시작 시점이라던가, 전체 보내는 자료의 Byte 수 라던가 중간에 혹시나 packet 이 사라지거나 소실될 경우를 대비한 일련번호 라던가 그런것이 필요하겠죠 만일 이런것에 대한 프로토콜이 완료 된다면 다른 데이터 보내기도 쉽게 할수가 있겠죠.

    그리고 Stream 방식으로 보낸다면 지금 당장에 필요하시 많은 양의 데이터 보내기는 쉽게 하실 수 있을 겁니다. 하지만 다른 명령이라던가 또다른 형식의 데이터보내기가 있을 경우 다시 이런 형식을 만들어야 되니 조금 부담스러울 수가 있습니다.

    결론 적으로 이야기 드리면 처음 방식은 단점은 처음 프로토콜 정의라던가 소켓 내부의 프로그램이 시간이 좀 걸린다는 것이고, 장점은 이렇게 정의된 프로토콜로 확장이 용이하다는 것이죠.
    후자의 방법의 처음에는 쉽게 할수 있는데, 확장을 하려면 비슷한 내용을 반복을 해야한다는데 있겠죠.
    물론 두가지 방식을 혼용하여 사용하는 것도 괜찮은 방법입니다.
    저는 이두가지 방식을 혼용하여 사용하죠. Packet 을 만들고 이것을 Stream 으로 보내는 방식을 사용합니다.

    물론 다른 분들의 다양한 방법들도 있겠지만 제가 여지껏 격어온 통신 프로그램에서는 최소한 그렇다는 것이죠.

    어째던 여러 방식이 있으니 그것을 어떻게 구현하냐는 것은 프로그램하는 사람의 선택입니다.

    그럼 즐프되세요~~~