|
안녕하세요 만해 입니다.
unsigned char* 로 되어진 문장을
AnsiString으로 변환시 자료가 손상될 경우가 있는건가요?
전송 받은 데이타를 보면 전체적으로 약간의 손상이 문제 되는데
헐~
내부적으로 패러티 비트를 사용해서 재전송을 요구 하는 부분을
삽입할까 생각 중입니다.
제가 지금 사용하고 있는 예제는 학균님의
ChatServer하고 ChatClient입니다.
누가좀 도와 주세요~
gongnim 님이 쓰신 글 :
: 글쎄요. 저도 정확히 어떤 문제때문에 일어난다고 꼭 집어서 얘기하지는 못하겠습니다.
: 하지만, 저도 소켓 프로그램은 많이 해봤지만, 그런 경우가 가끔씩 있더라구요.
: 형선언이나, 내부 연산등 여러가지를 생각해봐야겠구요. 무슨 이유에서인지는 모르겠지만,
: 전송되면서 데이타가 잘못 갈때가 있는데 그건 저도 어찌 해야할지 모르겠습니다.
: 좀더 정확한 통신을 원하시면 서버와 클라이언트가 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* 형으로 바꿔서 사용하고 있습니다.
: :
: : 제가 문제를 삼은 부분이요
: :
: : 자료를 넣어서 암호화된 데이타를 전송 시킬때
: :
: : 암호화된 데이타의 모든 비트를 다 적어 놨는데
: :
: : 수신 부분에서는
: :
: : 읽은 데이타의 비트를 싹 비교 해보니
: :
: : 전제적으로 국소 부분에서 차이가 나네요
: :
: : 왜 이러는지 좀 알려 주세요 ~
: :
|