Q&A

  • SendBuf에서 Stream을 보낼수 없습니까?
안녕하십니까 개발자님들



다름이 아니라 소켓통신에 대해 여쭈어 보고 싶은것이 있어서 글을 올립니다.



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로 볼낼수 있는지 알고 싶습니다.





답변 부탁드립니다.



즐프하세요.



0  COMMENTS