안녕하세요..
답답한 맘을 헤아려 주시길 바랍니다... ㅜ.ㅜ
clientsocket 으로 40 byte를 보내는 방법이 알고 싶어 질문드립니다.
제가 서버측으로 메세지를 보내야 합니다.. 업무상..
보내는 형식은
1. 4바이트 정수형(int) 2개랑
2. null로 끝나는 문자열 n바이트 입니다. (16 또는 32,80 바이트)
여기서 문제는 어떻게 int 형과 string 을 바이트로 바꾸어서 보내냐는
것입니다..
clientsocket1..Socket.SendBuf(???,40);
어떻게 두 녀석을 섞어서 보낼 수 있을까요?
이곳저곳 뒤져보아도 방법을 몰라서 이렇게 질문드립니다.
초보라서.. 자세한 설명 부탁드립니다..
일단 제가 하는 방법은 두가지 입니다.
첫째
스트럭쳐를 만들어서 보낸다.
Type
SendData = record
A : integer;
B : double;
C : array[0..31] of char;
end;
.....
var S : SendData;
begin
clientsocket1..Socket.SendBuf(S,sizeof(SendData));
end;
두번째는 메모리스트림을 이용한다.
var S : TMemoryStream;
begin
S := TMemoryStream.Create;
S.Write(변수A, Size변수A);
S.Write(변수A, Size변수A);
S.Write(변수A, Size변수A);
clientsocket1..Socket.SendBuf(S,S.size);
////////////////////////////////////////
// 이부문 잘 기억이 안나네요
// S.position := 0;
// clientsocket1..Socket.SendBuf(S.Memory ,S.size);
// 쩝 이궁 했었는데도 모르겠다.. 하여간 스트림으로 보내는것도 있어요..
////////////////////////////////////////
S.free;
end;