첫번째 보낼때는 정상으로 가는데
두번째 보낼때는 메세지가 안갑니다.
뭐가 잘못되었는지 도저히 모르겠네요...흑흑
메세지보내고 받는것은 TMemo에 넣었습니다.
아시는분 회신 주십시요...
---> Client
function TTcpSend.StringsSend (TCPClient: tidtcpclient; Ip: String; Mess: TStrings) : Boolean;
var
sRecv : String;
begin
TcpCommon.ClientSocketInit(TCPClient, Ip);
with TCPClient do
begin
Connect;
while Connected do
begin
try
WriteLn(MESS_STRINGS+TCPClient.LocalName);
sRecv := ReadLn;
if Pos(MESS_OK, sRecv) = 0 then Break;
OpenWriteBuffer;
WriteStrings(Mess);
CloseWriteBuffer;
// Disconnect;
finally
Disconnect;
// StringsSend := False;
end;
end;
// Disconnect;
end;
StringsSend := True;
end;
---> Server
procedure TFTcp.TCPServerExecute(AThread: TIdPeerThread);
var
sRecv : String;
sSendUser : String;
sStream : TStringStream;
i : Integer;
begin
with AThread.Connection do
begin
try
sRecv := ReadLn;
sSendUser := '보낸이 : '+Copy(sRecv, MESS_LEN + 1, length(sRecv) - MESS_LEN);
if Copy(sRecv, 1, MESS_LEN) = MESS_STRINGS then
begin
WriteLn(MESS_OK);
sStream := TStringStream.Create('');
ReadStream(sStream, -1, True);
sStream.Seek(0, soFromBeginning);
RecvMess.Lines.LoadFromStream(sStream);
sStream.Free;
// RecvEdit.Lines.LoadFromStream(sStream);
for i:=0 to RecvMess.Lines.Count - 1 do
begin
if i = 0 then RecvEdit.Lines.Add(sSendUser);
RecvEdit.Lines.Add(RecvMess.Lines.Strings[i]);
end;
end
else if Copy(sRecv, 1, MESS_LEN) = MESS_MESSAGE then
begin
WriteLn(MESS_OK);
sRecv := ReadLn;
RecvEdit.Lines.Add(sSendUser);
RecvEdit.Lines.Add(sRecv);
end
else begin
end;
finally
Disconnect;
end;
// Disconnect;
end;
end;