|
아마도 TClientSocket에서 ClientType을 ctNonBlocking 즉, none blocking 형식으로
설정한 후 통신하시는 것 같군요.
SendText() 또는 SendBuf()는 return 값으로 전송된 byte 수를 응답합니다.
예로 Buf에 "1234567890" 이 들어 있고 TClientWinSocket.SendBuf(Buf, 10)의 결과로
7이 돌아온다면 "1234567" 만 전송 될 것이며, 나머지 "890"은 전송되지 않을 것 입니다.
이 경우 프로그래머는 나머지 "890"를 전송하도록 처리해야하며, 이 부분을 무시하고 프로그램을
작성할 경우 수신된 자료(File)은 원본 File과 앞 부부만 같고(꼭 그런 것은 아님) 뒷 부분은
이상한 형태로 나오게 될 것입니다.
님이 작성한 프로그램은 어떤 형태로 되어 있는지 한번 확인해 보세요.
좋은 하루 되세요!!! ^^;
----------------------------------------------------------------------------------------
초보 님이 쓰신 글 :
: 제가 프로그램을 잘못 짠건지. 소켓에 대해서 이해를 잘못하고 있는건지....
:
: 서버에서 클라이언트로 약 70k 정도 되는 데이터를 약 4k 정도로 짤라서 18번 정도 클라이언트로
:
: 전송을 했는데 16번째 부터 잘못된 똑같은 데이터가 끊임없이 들어오는데 무었이 잘못된거죠...
:
: 서버에서 보내는 데이터를 체크해보면 제대로 보내는것 같은데...
:
: 데이타를 4k씩 10번정도 40k를 전송하면 문제 없이 돌아가거든요...
:
: 그리고 데이타 받는 중간 중간에 메세지 박스를 띄워서 받는 작업을 좀 지연시켜면 또 정상적으로 데이타가
:
: 들어옵니다.
:
: 보낼때나 받을때 쓰래드는 사용하지 않았습니다..
:
: 고수님들 답변 부탁드립니다...
:
: 좋은 하루 되세요...
|