사실 다른 언어로 공부하다..
이번에 델파이로 처음 소켓프로그램을 공부하고 있습니다.
질문이 좀 허접하더라도.. 아시는 분께서는 자세히 소스라도
해서 답해주시면 정말 감사하겠습니다..
구조체로 Data를 주고받는 데요..
type
pDataBuf = ^TDataBuf;
TDataBuf : record
header : (Server ,client);
Commamd : (a,b,c,);
str : array[1..BUFFER_LEN] of char;
List : array[1..10] of string;
end;
위와 같은 구조체 인데요..
우선 이 구조체를 보낼때 WriteBuffer(pSendBuf^,BUFFER_LEN);
이런식으로 보내구여 ...
받을때는 ReadBuffer(S^,BUFFER_LEN);
이런식으로 받는데요..
여기서 값을 받아서 확인 해보면.. 다른 data는 모두 정상적으로
받았는데.. << List : array[1..10] of string; >> <----- 요놈만..
제대로 못받네용.. 화면에 찍어보면..
글씨가 깨져서 나오거든여..
도저히 혼자 해결을 못하겠기에.. 이렇게 고수님들의 많은 조언
부탁드립니다... 참고로 보낸후에 서버측에서 찍어본바로는
재대로 화면에 찍히는데.. 클라이언트에서는 아까 고놈만..
깨지네요.. ㅜ,.ㅜ;..
델파이의 string형은 포인터입니다. 그러니까 클라이언트에서 받은 구조체에는
서버쪽에 있는 string 번지들이 저장되어 있죠. 그리서 서버쪽에서는 잘 보이
고 클라이언트 쪽에서는 이상하게 나오는 겁니다.
string대신에 zero-based 문자배열을 사용하세요...
type
TListData = array[0..255] of Char;
type
pDataBuf = ^TDataBuf;
......
List : array[1..10] of TListData;
end;
^^ 항상 즐코하세요...