여러분들 덕분으로 프로그래밍이 뭔지도 모르는 제가 프로그램을 완성해 가고 있습니다.
많은 관심 감사드립니다.
거의 끝나가는데 문제가 하나 또 생겼네요.
이것이 마지막 질문이길 바라면서 또 염치없이 질문 드립니다.
Type
TAKSO = Record
CMD : String[20];
Data : String[50];
End;
Type
TBAND = Record
CMD : String[20];
MSG : String[50];
Data : String[50];
End;
이렇게 두개의 레코드가 있습니다.
var
AKSO : TAKSO;
BAND : TBAND;
Begin
.... .... .... ....
.... .... .... ....
IdUDPClient1.Active := True;
AData := RawToBytes(AKSO, SizeOf(AKSO));
IdUDPClient1.SendBuffer(AData);
AData := RawToBytes(BAND, SizeOf(BAND));
IdUDPClient1.SendBuffer(AData);
FileStream.Read(AData[0], FileStream.Size);
IdUDPClient1.SendBuffer(AData);
IdUDPClient1.Active := False;
이렇게 했는데요.
같은 구조의 레코드의 데이터를 두번 보내면 문제가 없는데
위 소스코드 처럼 처음 보낼때와 다른 구조의 레코드를 보내면
서버측에서 데이터를 받지 못합니다.
게다가 3번쩨 보낼때 처럼 파일스트림을 AData에 저장해서 전송하면
클라이언트는 물론이고 서버까지 양쪽 프로그램이 종료되 버립니다.
어떻게 해결해야 하나요?
|