|
글쎄요. 저도 정확히 어떤 문제때문에 일어난다고 꼭 집어서 얘기하지는 못하겠습니다.
하지만, 저도 소켓 프로그램은 많이 해봤지만, 그런 경우가 가끔씩 있더라구요.
형선언이나, 내부 연산등 여러가지를 생각해봐야겠구요. 무슨 이유에서인지는 모르겠지만,
전송되면서 데이타가 잘못 갈때가 있는데 그건 저도 어찌 해야할지 모르겠습니다.
좀더 정확한 통신을 원하시면 서버와 클라이언트가 hand shake를 통해서 재확인하는 수밖에는 없을거 같네요.
그럼 즐프하세요
--- Change World ---
만해 님이 쓰신 글 :
: gongnim 님이 쓰신 글 :
: : TServerSocket과 TClientSocket은 TCP/IP 기반이랍니다.
: : 우선 Socket 자체는 TCP/IP 프로토콜을 사용한답니다.
: : 그러니까. 만해님이 자료의 오차가 생겼다는것은
: : 파일 송수신시 잘못된것 같네요.
: : 저도 그런적이 조금 있었거든요
: : 우선 받는 부분에서 파일 쓰기를 다시 한번 확인 하심이 좋을거 같네요.
: : 샘플소스는 자료실에 있는걸로 알고 있네요. 그럼~~
:
: 흠 파일에 입력하는건 아니고요
:
: 그냥 간단한 32바이트 자료 패킷을 암호화 시킨 자료를
:
: AnsiString EncData;
:
: EncData = Crypt->Encode(Source);
:
: ClientSocket->Socket->SendText(EncData);
:
: 이렇게 자료를 보내는 루틴이고요
:
: 받은 루킨은
:
: RecieveData = ClientSocket->Socket->RecieveText();
:
: AnsiString DecData;
:
: DecData = Crypt->Encode(RecieveData);
:
: 이렇게 되고요
:
: 구체적으로 애기는 소스를 올려 드리지는 못하지만
:
: TCrypt 에서는 기본적으로 사용하는 저의 타입이 있고
:
: AnsiString을 Char* 형으로 바꿔서 사용하고 있습니다.
:
: 제가 문제를 삼은 부분이요
:
: 자료를 넣어서 암호화된 데이타를 전송 시킬때
:
: 암호화된 데이타의 모든 비트를 다 적어 놨는데
:
: 수신 부분에서는
:
: 읽은 데이타의 비트를 싹 비교 해보니
:
: 전제적으로 국소 부분에서 차이가 나네요
:
: 왜 이러는지 좀 알려 주세요 ~
:
|