|
이성제 님이 쓰신 글 :
: 제라툴님께서 가르쳐 주셨는데요
:
: 처음 듣는 말이 있어서 다시 질문 합니다 ㅎ
:
: stream을 이용해서 전송할려고 하는데
:
: Socket에 전송하는 메소드중엔 Function을 대부분 가지고 있다고 하는데요;;
:
: 사용법이 어떻게 되는지 좀 가르쳐 주세요 ㅎ
:
: 그리고 무슨 큐를 이용 하라는데
:
: 큐가 쌓이는것을 막기위해 쓰래드를 사용 하라는데요
:
: 큐의 사용법도 좀 가르쳐 주세요 ㅎ
:
: stream 도 처음 접하는거고 '큐' 이건 아예 처음 듣는거거든요 ㅎ
:
: 대충의 사용법을 좀 가르쳐 주세요 ㅎ
:
: 그럼 수고 하세요~
소켓 컴퍼넌트 .. 간단한 예로
TClientSocket 의 경우는
Socket Property 즉 TClientWinSocket 클래스에 SendStream 이라는 Functions을 가지고 있습니다.
이런식으로 Stream 관련 함수들을 가지고 있죠
전송된 영상을 받으실때는 영상이라는것 자체의 크기가 크기 때문에
네트웍에서 한번에 Buffer로 받을 수 있는 양이 한정되어 있죠 ..
즉 네트웍 Queue에 사이즈 만큼으로요 .. 그렇기 때문에 데이터를 전송 받자 마자 그 데이터에 대한 작업을 하게 되면
그 작업 시간동안 네트웍 Queue에 데이터가 계속 쌓여서 데이터 가 Lose 되는 경우가 발생할 수있기 때문에.
네트웍 Queue에 쌓여 있는 데이트를 빼내 주는 작업을 하는 Thread를 만들어서 .. Data를 우리 프로그램 상의 Buffer로
옮겨 작업하는것이 좀더 효율 적입니다.
데이터 전송후 해 주어야 하는 작업이 많을 경우 즉 .. 데이트를 받아서 헤더 분석하고 영상 처리해 주고
만약 압축 영상이다 보면 디코딩 작업도 해주어야하는데 이런 작업을 하는 동안에 날아 들어오는
데이터들을 안정적으로 저장하기 위해서 .. Thread Queue를 사용하는 것이 효율 적이라는 얘기 입니다.
조금 도움이 되셨으면 합니다.
From Zeratul
|