Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.02;
Скачать: CL | DM;

Вниз

Органицая обмена большого коичества такста   Найти похожие ветки 

 
Costy   (2007-11-11 14:14) [0]

подскажите пожалуйста как можно организовать быстрый обмен большого количества текстовых команд посредствам tClient(server)Socket        когда я делаю класический приём  то происходит  ошибка


 
DVM ©   (2007-11-11 14:34) [1]


> когда я делаю класический приём

это какой?


 
Costy   (2007-11-11 14:43) [2]

это

ClientSocket1.Socket.Connected[0].sendText("команда");

а на другом конце провода по событию Server1ClientRead записываем ReceiveText в несчастную стринг переменую и далие проводим анализ команды


 
Costy   (2007-11-11 14:46) [3]

ошибся в примери малек   представте что Connected[0]  это такая шутка


 
DVM ©   (2007-11-11 15:04) [4]

Ничего не понял. Где ошибка то возникаеточешь сделать конкретно?


 
Costy   (2007-11-11 15:17) [5]

калочи у мя две проги клиент и сервер :

сервер:
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 в итоге сервер выдаёт ошибку


 
Costy   (2007-11-11 15:20) [6]

мне кажется мне просто надо науччить после прочтения команды удалить её из переменной и научить его видеть конец команды тоесть  удобнее просто заместо  ris задать  каконебудь символ который будет  являтся началом


 
DVM ©   (2007-11-11 15:26) [7]


> в итоге сервер выдаёт ошибку

Так прямо и говорит, мол Ошибка ? Что там за ошибка то?


 
Costy   (2007-11-11 15:45) [8]

куча куча  команд от клиента а потом is not valid integer value

карочи он склеивает команды а потом не может ралечить в них кардинаты и в функцию преобразования попадает не коректные данные      ыыыы

вопрос  в том как сделать чтобы не происзодила путаницы делать ещё одну переменую и в эту переменую выдергивать по команде (выдергивать по характерным признакам конца начала)   а потом анализировать имено эту доп переменую


 
DVM ©   (2007-11-11 15:51) [9]


> 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 означают конец команды.


 
zvukoff   (2007-11-11 16:01) [10]


> Costy   (11.11.07 15:17) [5]
> одним словам сервер получает кардинаты и  рисует точку  
> на экране
> а клиент отправляет ему эти кардинаты (в следствии их полученя
> путем анализа бмп картинки) но кардинат до усрачке много
> и судя по всему он начинает из склеивать в 1 в итоге сервер
> выдаёт ошибку

правильно и ничего у тебя не получится
для сохранения формата нужно еще отправлять и цвет точки)
иначе на сервере GIF получится, а не BMP



Страницы: 1 вся ветка

Текущий архив: 2008.11.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
1-1201897002
elserpiente
2008-02-01 23:16
2008.11.02
ListView


2-1221635322
Amid
2008-09-17 11:08
2008.11.02
Как соединить 2 файла BMP ?


1-1201174663
Elec3C
2008-01-24 14:37
2008.11.02
Свойства файла


3-1208684818
Pilum
2008-04-20 13:46
2008.11.02
Каковы сравнительные преимущества FB/IB и MySql в разработке MU?


2-1222099743
Dmitry S
2008-09-22 20:09
2008.11.02
Как создать иконку документа.