답변 감사요.... ㅋㅋㅋ
8.0.25에 C+Builder에 기본으로 포함되어 있는 것입니다.
오늘 해 보니 num = IdTCPClient1->Binding->Recv( buff, 100, 2 ); Blocking 일어나내요....
물론 어떤 Data가 조금 이라도 있으면 그냥 지나 가는 것으로 보입니다.... 어떻게
이것으로 해보려고 합니다. 처음에 길이 보내고 그 길이 올 때까지 기다리고.... 뭐 그렇게....
마술감자 님이 쓰신 글 :
: 전 인디를 모릅니다.
: 그래서 인디10용 도큐먼트를 받아서 해당 프로퍼티와 메소드를 찾았는데 나오지 않네요
: 버전을 알려주시면 한번더 보도록 하겠습니다.
:
: 참고로 URL은..
:
http://www.indyproject.org/Sockets/Docs/
:
:
: 박영목 님이 쓰신 글 :
: : 저번에는 쓰레드를 돌려서 ReadBuffer으로 한 것으로 생각됩니다. 이게 블럭킹이 되니까?
: : 그런데 오늘간단히 쓸 일이 생겼는데.... 나원 값을 서버에 보내고 바로 받을 일이 생겼는데...
: : 그냥 타이머 정도.... 생각보다 짜쯩 나네요.... 현재 수신된 길이만 알면 블럭킹은 아무것도 아닌데...
: : 그런데... 수신 버퍼를 지울 수만 있으도 귀찮게 할 수 있을 것 같은데...
: : 무론 계속 빠른속도로 올 때는 수신 버퍼 지우는게... 영 불안하지요...
: :
: : 그런데.... 아래와 같이 하면 귀찮게 받아냅니다. ㅋㅋㅋㅋ 그런데... 찝찝합니다. 2번 읽기 때문에...
: :
: : char buff[100];
: : int num;
: :
: : num = IdTCPClient1->Binding->Recv( buff, 100, 2 ); // MSG_PEEK
: :
: : if( num )
: : {
: : IdTCPClient1->ReadBuffer( buff, num );
: : buff[num]=0x00;
: : Memo1->Lines->Add( buff );
: : }
: :
: : 위 방법은 삽질로 알아낸 것이데... Data 정말 잘 받아냅니다. 물론 블럭 현상도 없고... ㅋㅋㅋ
: : 위의 Recv는 값을 가지고 오는 데 버퍼를 지우는 기능이 없네요...
: : 그래서 아래의 ReadBuffer에서 버퍼를 지우기 위해 또 호출합니다....
: :
: : 2번 읽기 프로그래머로써 짜쯩 납니다. 그래서.... 밤을 세웠습니다.... 이제 자야지ㅣ...
: :
: : 누가 아침에 답을 좀 주려나.... ReadLn WriteLn 이런 것은 월래 잘 되는 편이지요...
: : 그런데.... 바이너리로 받고 보내고 할 때는 귀찮아서....
: :
: : 아참에 보시지요...... 꽈~~당..... 잠 ... 온... 다........ 수신 길이... 아는 방법.....? 으으으,,,,