안녕하십니까 개발자님들
다름이 아니라 소켓통신에 대해 여쭈어 보고 싶은것이 있어서 글을 올립니다.
1. ClientSocket에서 SendBuf할때 저는 RichEdit의 내용을 그대로 보내고 싶습니다.
그래서 밑의 Source 처럼 Record 형 변수로 보내고자 하는데 받을때 문제가 발생합
니다.
//선언부
type
TPacketRec = packed record
SendID : string[32];
szMessage : TStream;
end;
var
Packet : TPacketRec;
SendBuffer : array[1..3072] of Char;
//소스부
procedure TForm1.Button4Click(Sender : TObject);
var
Stream : TStream;
begin
Stream := TMemoryStream.Create;
RichEdit1.Lines.SaveToStream(Stream);
Packet.szMessage := TMemoryStream.Create;
Packet.SendID := 'htjulia';
Move(Packet, SendBuffer, SizeOf(Packet));
RClientSocket1.Socket.SendBuf(Packet, sizeof(Packet));
Stream.Free;
end;
으로 보내고
//받을때
procedure TForm1.RServerSocket1ClientRead(Sender : TObject;
Socket : TRCustomWinSocket);
begin
if Socket.ReceiveBuf(Packet2, 3072) <> 0 then
begin
Stream.Position := 0;
RichEdit2.Lines.LoadFromStream(Packet2.szMessage);
RichEdit2.Lines.add(Packet2.SendID);
end;
end;
2. SendBuf 에서 Record형을 component로 볼낼수 있는지 알고 싶습니다.
답변 부탁드립니다.
즐프하세요.