소켓통신 할때
ReceiveBuf, ReceiveText 를 이용해서 서버로부터 받은 데이타를 클라이언트에 뿌려주려고 합니다.
Socket.ReceiveText를 사용해서 받은 데이타를 확인해보면
54byte * N개 의 패킷이 한줄로 연속해서 내려옵니다.
내려온 Packet을 54byte씩 자를려고 하는데 어떻게 해야 될지 모르겠어요.
ReceiveBuf 를 이용해서 하면 된다고 하는데... 잘 모르겠거든요.
죄송하지만... 답변 부탁 드릴께요~~~
참... 또.. 아주 초보적인 질문 하나 더 하겠습니다.
받은 패킷을 (1번째 자리부터 4번째 자리)까지 분리할려고 하는데 값이 나오지 않네요
예를들면
aa : string[5];
aa := Copy(Socket.ReceiveText, 1, 4);
showmessage(aa);
하면 아무값도 나오지 않습니다.
어휴~~ 미치겠어요. 도와주세요~~~~
> 소켓통신 할때
> ReceiveBuf, ReceiveText 를 이용해서 서버로부터 받은 데이타를 클라이언트에 뿌려주려고 합니다.
>
> Socket.ReceiveText를 사용해서 받은 데이타를 확인해보면
> 54byte * N개 의 패킷이 한줄로 연속해서 내려옵니다.
> 내려온 Packet을 54byte씩 자를려고 하는데 어떻게 해야 될지 모르겠어요.
>
> ReceiveBuf 를 이용해서 하면 된다고 하는데... 잘 모르겠거든요.
> 죄송하지만... 답변 부탁 드릴께요~~~
아래를 응용하셔서 한번 해보시길 바랍니다. (될지 안될지 .... 테스트는 안해봐서리)
죄송합니다.
만약 틀리면 죄송하구요 만약 맞이면 다행이구요~! -> 무책임한 말을... 윽...
procedure TChatForm.ClientSocketRead(Sender: TObject;
Socket: TCustomWinSocket);
var
Buf, Count, i : Integer;
buffer : array [0..53] of byte;
begin
i := serversocket1.socket.ReceiveBuf(buffer,54);
:
:
>
> 참... 또.. 아주 초보적인 질문 하나 더 하겠습니다.
>
> 받은 패킷을 (1번째 자리부터 4번째 자리)까지 분리할려고 하는데 값이 나오지 않네요
>
> 예를들면
> aa : string[5];
> aa := Copy(Socket.ReceiveText, 1, 4);
> showmessage(aa);
>
> 하면 아무값도 나오지 않습니다.
> 어휴~~ 미치겠어요. 도와주세요~~~~
>
글씨요 이것을 쓰는 데 있어서 어딘가 이상한 곳이 있겠지유~!
Socket.ReceiveText 이 값이 제대로 안오는 거 같지유~!
Socket.ReceiveText = '' 이라면....
aa := Copy(Socket.ReceiveText, 1, 4); aa 값엔 아무것도 안들어 가겠지요!
한번 디버깅을 해보셔요(알지요? 체크할려는 부분에 F5 그리고 컴파일해서 ctrl+F7)
그럼 어떻게 프로그램이 돌아가는지 알게 되겠지요~!
도움이 잘 되었나 모르겠군요....