[DELPHI]Client i serwer socket przesyłanie zmiennych

0

Wysyłam do serwera trzy zmienne w taki sposób

ClientSocket1.Socket.SendText('nazwa_zmiennej1');
ClientSocket1.Socket.SendText(zmienna1);
 ClientSocket1.Socket.SendText('nazwa_zmiennej2');
ClientSocket1.Socket.SendText(zmienna2);
ClientSocket1.Socket.SendText('nazwa zmiennej3');
ClientSocket1.Socket.SendText(zmienna3);

Najpierw wysyłam nazwę zmiennej a po niej jej wartość
Jak żrobić aby serwer odbierał te dane i przypisywał te wartosci do zmiennych które się nazywają tak samo jak te wysłane przez ClientSocket?

0

A po co takie coś ?

0

Dobra to może inaczej zadam pytanie.
Jak zsynchronizowac zmienne na dwóch komputerach za pomocą tych komponentów?

0

Ahh sory, delphi xD..

Wystarczy stringiem sie pobawić, w którym będą sie znajdować dane na daną zmienną, czy też tablicę. Jak tam wolisz ;p

np.
int var1 = 50;
"VAR1 %d",var1

i po drugiej stronie sprawdzać i przypisywać wartość.

0

A może ktoś podać przykład jak taką synchronizację zrobić?

0

Próbowałem w taki sposób:

  

procedure TForm1.Timer1Timer(Sender: TObject);
  var
zmienna1:string;
zmienna2:string;
zmienna3:string;
sendmessage:string;
begin
sendmessage:=zmienna1+'#'+zmienna2+'#'+zmienna3;
ClientSocket1.Socket.SendText(sendmessage);
end;
 

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
  var
getmessage:String;
 Lista: TStringList;
begin
 getmessage := Socket.ReceiveText;
  Lista := TStringList.Create;

  try

    ExtractStrings(['#'], [],getmessage, Lista);

    Edit1.Text := Lista[0];

    Edit2.Text := Lista[1];

    Edit3.Text := Lista[2];

   finally

    Lista.Free;

end;
 

Jednak wyskakuje mi błąd w linijce:ExtractStrings(['#'], [],getmessage, Lista);
o treści:[Error] Unit1.pas(293): Incompatible types: 'String' and 'PAnsiChar'

Jak mam to naprawić aby działało?
Mam oprócz tego jeszcze jedno pytanie:
Czy jeżeli ustawię timer na 10 milisekund to czy wszystko będzie działać prawidłowo,czy będę musiał zrobić jakieś potwierdzenie przetworzenia tych danych?

0

Czyżbyś chciał napisać proxy na jakiś serwer??

0

Czyżbyś chciał napisać proxy na jakiś serwer??

Nie.

Jakoś się z tym uporałem,jednak ta synchronizacja jest dla mnie zbyt wolna
Chodzi mi o odświeżanie zmiennych co 10 milisekund a nawet mniej jak będzie potrzeba.
Czy tak jak ja to zrobiłem wykorzystuje 100% mojego łącza?
Jak zrobić żeby to odświeżanie zmiennych pomiędzy programami było jak najszybsze?

1 użytkowników online, w tym zalogowanych: 0, gości: 1