데이터크기+바이너리데이터, 데이터크기+문자열
과 같은 식으로 모두 바이너리 처리하세요..
문자열을 보낸다는 것도 결국 바이너리일 뿐입니다..
핵사값을 보낸다는 의미를 모르겠습니다..
메모리나 패킷안에는 비트를 엮은 바이트 단위로 전송되고 저장될 뿐입니다..
수신된 문자열 데이터는..
위에서 데이터크기를 iDataSize라고 하고,
수신된 데이터가 포인터에 있다고 가정할 때..
Var
iDataSize : Integer;
pData : Pointer;
stText : String;
Begin
소켓수신...
SetLength(stText, iDataSize);
Move(pData^, stText[1], iDataSize);
End;
처럼하시면됩니다..
송수신된 데이터가 클 때에는 TStringStream을 사용하세요..
유일근 님이 쓰신 글 :
: 유닉스의 http 1.1 서버에다..델파이 6 TCP소켓을 이용해서.
:
: 헤더 포함해서..데이타를 전송시에..
:
: POST http://............/servlets/fepservlet?SERVICE_ID=610016100110010 HTTP/1.1
: Acccept:*/*
: Accept-Language:ko
: .
: .
: .
: Content-Length:72
: 여기까지는 문제 없습니다..
: 걍 SENDTEXT나 SENDBUF로 보냈거든여..
:
: 근디 아래에 보시는 바와같이..
: 바이너리+스트링+바이너리+스트링...이런 정보는 델파이에서 도대체 어케 보내야 하나여
:
: DQ0D00100 0000E00000E4
:
: 그리고.. 추가질문 헥사값을... 어케 보내야하나여..
: 0x200x030x070x300x240x300x50000x000x000x000x000x000x000x0
: 00000x000x00000000x000x000x000x000x000x000x000x0060xAA0xAA
: 이런 데이타를 보내봤자.. 서버단에서는 문자로 인식하던데 ㅡㅜ;;
|