Q&A

  • 소켓으로 파일전송시에.
메신져를 만들고있습니다.
자료를 전송할때.
예를들어 1024바이트를전송하면
체크섬으로 1024 바이트를 1024등분하여
하나하나 값을 더합니다.
자료가들어가는 변수수형은  
dat : array[0..1023] of char 입니다
그럼 배열 1024개를 루핑들돌면서 개개값을 더한다는것이죠
헌데
자료를 최소 업로드하는곳에서 10000나왔다고하면
서버로에서 그 자료를 받는데 다시 체크섬을 돌려보면 9000 이나오고
다시 유저에게 자료가가면 8000 이나옴니다
위의 체크섬은 예를 든거구요
헌데 자료 총 바이트수는 똑같습니다.
허나 모든 패킷이 다틀립니다 다시말해 제대로가는 패킷이하나도없다는것이죠
자료가 이동하면서 변하는것인지 하는군요.
이미지자료같은건 잘가는데
인스톨파일이나 압축파일을보내면
파일이손상되었다고하면서 제대로 동작을 안하더군요

해결방법이 있으시면 답변부탁드립니다.
1  COMMENTS
  • Profile
    최용일 2004.08.12 21:14
    안녕하세요. 최용일입니다.

    체크섬을 어떤식으로 보내는지는 안써져 있어서 잘 모르겠지만...

    아마도 자료에 포함되어 있으리라고 생각되는데... 서버나 받는쪽 클라이언트에서 체크섬 계산할 때 보내는쪽에서 계산한 체크섬까지 포함해서 다시 계산한것은아닌지... 그리고 패킷을 받아서 다시 파일로 만들때 체크섬도 포함되어 만드신것은 아닌지... 확인해보세요...

    참고로 TCP로 파일 전송하신다면 체크섬계산하는 것은 시간 낭비입니다.

    ^^ 항상 즐코하세요...