Witam
Robię do szkoły mały program który będzie pozwalał na komunikację się użytkowników komputerów.
Całość robię na Indy IdTCPServer/Client.
Połączenie i wszystko chodzi całkiem nieźle póki nie zacznę przesyłać danych, błędów nie ma ale problem jest taki że nic nie przychodzi.
Kod Serwera:
procedure TSForm_Server.IdTCPServer1Execute(AContext: TIdContext);
var
NewMessage: TMessage;
InMessage: TMemoryStream;
i : integer;
begin
InMessage := TMemoryStream.Create;
NewMessage.MsgData := TStringList.Create;
AContext.Connection.IOHandler.ReadStream(InMessage, SizeOf(NewMessage));
InMessage.Read(NewMessage, SizeOf(NewMessage));
Memo_Display.Lines.Add('> New User');
Memo_Display.Lines.Add('+------------------------------------------------+');
Memo_Display.Lines.Add('> Data: '+NewMessage.MsgDate+' '+NewMessage.MsgTime);
Memo_Display.Lines.Add('> InIP: '+NewMessage.MsgInIP);
Memo_Display.Lines.Add('> OutIP: '+NewMessage.MsgOutIP);
Memo_Display.Lines.Add('> From: '+NewMessage.MsgSender);
Memo_Display.Lines.Add('> To: '+NewMessage.MsgReciver);
Memo_Display.Lines.Add('> Message:');
for i := 0 to NewMessage.MsgData.Count-1 do begin
Memo_Display.Lines.Add(NewMessage.MsgData.Strings[i]);
end;
Memo_Display.Lines.Add('+------------------------------------------------+');
end;
Kod Klienta:
procedure TSForm_Client.SendMessage(Sender: TObject);
var
NewMessage : TMessage;
OutMessage : TMemoryStream;
begin
NewMessage.MsgInIP := IPIn;
NewMessage.MsgOutIP := IPOut;
NewMessage.MsgSender := Edit_Nick.Text;
NewMessage.MsgReciver := 'Server';
NewMessage.MsgTime := TimeToStr(Now);
NewMessage.MsgDate := DateToStr(Now);
NewMessage.MsgData := TStringList.Create;
NewMessage.MsgData.Assign( Memo1.Lines );
OutMessage := TMemoryStream.Create;
OutMessage.Write(NewMessage, sizeOf(NewMessage));
OutMessage.Position := 0;
IdTCPClient1.IOHandler.Write(OutMessage);
end;
Klasa Rekordu, wszędzie ta sama:
TMessage = record
MsgInIP: string;
MsgOutIP: string;
MsgSender: string;
MsgReciver: string;
MsgTime: string;
MsgDate: string;
MsgData: TStrings;
end;
W jakim miejscu popełniłem błąd?