wysylanie client-serwer

0

jestem poczatkujacym uzytkownikiem wiec prosze o wyrozumialosc
pisze program w Delphi 6 Enterprise
mam tablice wylos_litery: array [0..8] of string;
w tablicy przechowuje pojedyncze litery, cyfry oraz wyrazenia np. $200
chce teraz przeslac zawartosc tablicy do drugiego komputera
robie to tak:
k:=0;
for k:=0 to 8 do
begin

if client1.Active=true then
begin
plansza.Client1.Socket.SendText(wylos_litery[k]);
end else
begin
plansza.Server.Socket.Connections[0].SendText(wylos_litery[k]);
end;
end;

i wszystko ok
podczas odbioru procedura socket.receiveText wpisuje te dane do memo

jak mam zrobic zeby zamiast wpisywania danych odebranych do memo wpisywac je do innej tablicy-czyli
wysylam wylos_litery[0]='$200';
wylos_litery[1]='A';

a po drugiej stronie chce uzyskac:

odebrano[0]=wylos_litery[0];
odebrano[1]=wylos_litery[1];

0

Generalnie trudno zrozumieć dlaczego właśnie tak, ale zakładam że dla celów szkoleniowych lub z waznych powodów. Proponuję skoro masz tablicę 0-8 to po drugie stronie to samo zrobic for k:=0 to 8 ......
Domyślam sięzę wpadłeś na to, ale być może masz problem że czasem jest jedna cyfra a czasem kilka i jak to rozróżnić. Wstawić unikalny znak pomiędzy wysyłanymi - taki który będzie separatorem, np. tylko dla celów testowych, najprostsze rozwiązanie to znak | lub któryś z wysokich kodów ASCII, lub jakaś kombinacja. Przy odbieraniu musisz wówczas dekodować pojawienie się znaku i dzielić wg. niego.
przykład: problem z przesłaniem 1 2 34 5 67 bo na wyjsciu jest 1234567
rozwiązanie: na wyjściu mamy 1|2|34|5|67 - wiadomo jak rozdzielić wynik.

0

ok dzieki
hmm DLACZEGO TAK???
musze napisac program ktory pelni role komunikatora
to juz mam-proste procedurki przesylajace ciag znakow
uzywam komponentow Client Server
oprocz komunikatora program musi tez przesylac dane, np. client losuje 10 liczb, zapisuje je do tablicy i musi przeslac do servera
na sposob z oddzielaniem kolejnych elementow tez wpadlem tylko nie wiem co pozniej
dostaje na wyjsciu 10|456|itd. i jak teraz odczytywac zeby np
odebrane[0]:=10;
odebrane[1]:=456;

a moze ma ktos prostszy sposob na rozwiazanie tego problemu bo ten wydaje mi sie skomplikowany

Z gory dzieki wszystkim za pomoc

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