-
подскажите пожалуйста как можно организовать быстрый обмен большого количества текстовых команд посредствам tClient(server)Socket когда я делаю класический приём то происходит ошибка
-
> когда я делаю класический приём
это какой?
-
это
ClientSocket1.Socket.Connected[0].sendText('команда');
а на другом конце провода по событию Server1ClientRead записываем ReceiveText в несчастную стринг переменую и далие проводим анализ команды
-
ошибся в примери малек представте что Connected[0] это такая шутка
-
Ничего не понял. Где ошибка то возникаеточешь сделать конкретно?
-
калочи у мя две проги клиент и сервер :
сервер:
procedure TForm1.Server1ClientRead(Sender: TObject; Socket:СustomWinSocket);
var
s:string;
begin
s:=server1.Socket.Connections[0].ReceiveText;
if copy(s,1,3)='ris' then
begin
delete(s,1,3);
scr.Pixels[strtoint(copy(s,pos('+',s)+1,length(s))),strtoint(copy(s,1,pos('+',s)-1))]:=clRed;
end;
end;
одним словам сервер получает кардинаты и рисует точку на экране
а клиент отправляет ему эти кардинаты (в следствии их полученя путем анализа бмп картинки) но кардинат до усрачке много и судя по всему он начинает из склеивать в 1 в итоге сервер выдаёт ошибку
-
мне кажется мне просто надо науччить после прочтения команды удалить её из переменной и научить его видеть конец команды тоесть удобнее просто заместо ris задать каконебудь символ который будет являтся началом
-
> в итоге сервер выдаёт ошибку
Так прямо и говорит, мол Ошибка ? Что там за ошибка то?
-
куча куча команд от клиента а потом is not valid integer value
карочи он склеивает команды а потом не может ралечить в них кардинаты и в функцию преобразования попадает не коректные данные ыыыы
вопрос в том как сделать чтобы не происзодила путаницы делать ещё одну переменую и в эту переменую выдергивать по команде (выдергивать по характерным признакам конца начала) а потом анализировать имено эту доп переменую
-
> Costy (11.11.07 15:45) [8]
Я использую нечто подобное в своих программах, т.е. текстовый протокол для обмена командами между клиентом и сервером. В моем варианте все приходящие команды собираются в одну большу строку и потом из этой строки команды выделяются по меткам специальным и обрабатываются.
Команды у меня выглядят так:
Action: Тип команды#13#10
Param1: Value1#13#10
Param2: Value1#13#10
...
ParamN: ValueN#13#10
ActionID: ID#13#10
#13#10
Два #13#10#13#10 означают конец команды.
-
> Costy (11.11.07 15:17) [5]
> одним словам сервер получает кардинаты и рисует точку
> на экране
> а клиент отправляет ему эти кардинаты (в следствии их полученя
> путем анализа бмп картинки) но кардинат до усрачке много
> и судя по всему он начинает из склеивать в 1 в итоге сервер
> выдаёт ошибку
правильно и ничего у тебя не получится
для сохранения формата нужно еще отправлять и цвет точки)
иначе на сервере GIF получится, а не BMP