Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (6): [1] 2 3 4 5 6 »   

> Описание: Обмен данными, контроль и управление другой программой по сети интернет.
Kibor
Отправлено: 05 Марта, 2015 - 16:09:13
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8091
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




В этой версии появилась возможность с помощью функций writebuffernet и readbuffernet легко обмениваться данными, контролировать и управлять собранными в Кибор EXE, которые запущены на разных компьютерах через интернет.

Обмен данными происходит через промежуточный сервер, поэтому достаточно лишь подключения к сети интернет. Не важно серый или белый у Вас ip.

Не используйте данные функции чаще раз в несколько минут (в сумме со всех программ). При большой нагрузке, программы ее создающие будут отключены от сервиса.

Идентификация программ которые надо связать происходит по нескольким параметрам. Можно связывать :

1 ) все программы собранные в конкретно зарегистрированном Кибор (установленном на конкретном компьютере).
2 ) программы собранные в конкретно зарегистрированном Кибор (установленном на конкретном компьютере) и указанном в функциях writebuffernet и readbuffernet уникальном придуманом ключе для данных программ.
3 ) программы собранные в конкретно зарегистрированном Кибор (установленном на конкретном компьютере) и указанном в функциях writebuffernet и readbuffernet ключа компьютера на котором работает одна из программ. (По ключу одного из компьютера (в О программе Кибор).)
4 ) программы собранные в конкретно зарегистрированном Кибор (установленном на конкретном компьютере) и указанном в функциях writebuffernet и readbuffernet уникальном придуманом ключе для данных программ и указанном в функциях writebuffernet и readbuffernet ключа компьютера на котором работает одна из программ. (По ключу одного из компьютера (в О программе Кибор).)

1 вариант позволяет общаться между собой всем программам собранных в конкретно установленном Киборе.
2 вариант позволяет общаться конкретной группе программ собранных в конкретно установленном Киборе (по уникальному придуманому ключу)
3 вариант позволяет общаться с программой установленной на конкретном компьютере (зная его ключ)
4 вариант позволяет общаться конкретной группе программ собранных в конкретно установленном Киборе (по уникальному придуманому ключу) и установленных на конкретном компьютере (зная его ключ (в О программе Кибор))

Обязательное условие - все EXE должны быть собранны в одном Кибор на одном компьтере.

Синтаксис:
 Цитата:
char ch[256];
strcpy(#ch[0], "Сообщение");
writebuffernet(#ch[0], size(#ch[0]), "kluch_prog", "kluch_comp");


 Цитата:
char ch[256];
readbuffernet(#ch[0], 256, "kluch_prog", "kluch_comp");
messagebox (format(#ch[0]));


первый параметр - указатель на массив char, данные с которого будем писать в буфер на сервере.
второй - количество записываемых байт.
третий - унакальный придуманный ключ для этой группы программ.
четвертый - ключ компьютера с программой которого будем связываться.

третий и четвертый параметры могут принимать -1
в этом случае данный параметр не будет учитываться.

то есть writebuffernet (readbuffernet) (#ch[0], size(#ch[0]), -1, -1); позволит общаться всем программам собранных в конкретном Кибор.
writebuffernet (readbuffernet) (#ch[0], size(#ch[0]), "kluch_prog", -1); конкретной группе программ.
writebuffernet (readbuffernet) (#ch[0], size(#ch[0]), -1, "kluch_comp"); с конкретным компьютером.

возвращают 1 при удаче и < 1 ошибка

Пример общения группе программ (по уникальному придуманому ключу):
первая программа - передает
 Цитата:
char ch[256];
strcpy(#ch[0], "Сообщение");
writebuffernet(#ch[0], size(#ch[0]), "kluch_prog", -1);


вторая программа - принимает
 Цитата:
char ch[256];
readbuffernet(#ch[0], 256, "kluch_prog", -1);
messagebox (format(#ch[0]));



Пример общения с программой на конкретном компьютере (по его ключу (в О программе Кибор)):
первая программа - передает
 Цитата:
char ch[256];
strcpy(#ch[0], "Сообщение");
writebuffernet(#ch[0], size(#ch[0]), -1, "kluch_comp");// указать ключ компа с которым связаться над


вторая программа - принимает
 Цитата:
char ch[256];
readbuffernet(#ch[0], 256, -1, individualcode());// указать ключ своего компа
messagebox (format(#ch[0]));


На данные функции действует ограничение по частоте вызова. Один раз за 10 (+рандомно 0 - 3 секунды) секунд между вызовами пары writebuffernet и readbuffernet и 25 (+рандомно 0 - 3 секунды) секунд между вызовами одноименных функций. Поэтому код надо строить так что бы не было чаще вызовов, 13 и 28 сек.
Иначе программа будет простаивать оставшееся время и сигналить звуком.
Так же допускается не чаще одного раза в 3 секунды обращаться к серверу этими функциями любым программам собранным в одном Кибор (с одним ключом). Иначе функции вернут -10 и не отработают по назначению.

Пояснение
CODE:
char ch[256];

loop()
{
strcpy(#ch[0], "Сообщение");
writebuffernet(#ch[0], size(#ch[0]), "kluch_prog", "kluch_comp");

readbuffernet(#ch[0], 256, "kluch_prog", "kluch_comp");//Тут будет пауза 10 секунд. Основная работа скрипта не прерывается. Прервется только если readbuffernet вызовется раньше чем через 10 сек после вызова writebuffernet
messagebox (format(#ch[0]));
//Тут будет пауза 25 секунд когда дойдет до writebuffernet (с момента ее последнего вызова) Основная работа скрипта не прерывается. Прервется только если writebuffernet вызовется раньше чем через 25 сек повторно
}


CODE:
char ch[256];

loop()
{
strcpy(#ch[0], "Сообщение");
writebuffernet(#ch[0], size(#ch[0]), "kluch_prog", "kluch_comp");
//Тут будет пауза 25 секунд когда дойдет до writebuffernet (с момента ее последнего вызова). Основная работа скрипта не прерывается. Прервется только если writebuffernet вызовется раньше чем через 25 сек повторно
}


CODE:
char ch[256];

loop()
{
readbuffernet(#ch[0], 256, "kluch_prog", "kluch_comp");
messagebox (format(#ch[0]));
//Тут будет пауза 25 секунд когда дойдет до readbuffernet (с момента ее последнего вызова) Основная работа скрипта не прерывается. Прервется только если readbuffernet вызовется раньше чем через 25 сек повторно
}


Демонстрационный пример двух программ можно скачать тут .

send_command передает введенный текст, get_command принимает и выводит на экран.
Эти программы можно запускать на разных компьютерах. Передача идет через интернем с помощью writebuffernet и readbuffernet.

код этих программ
send_command
CODE:
char ch[256];
string text;
int tim, tim1;
int col, x, y;
getdisplay(col, x, y);
a: text=input("Введите сообщение");
if (text!="")
{
strcpy(#ch[0], text);
writebuffernet(#ch[0], size(#ch[0]), -1, -1);
tim=gettime();
s: tim1=gettime()-tim;
if (gettime()-tim<11000)
{
textbkcolor (255,0);
textout(0, x/2-260, y/2-200, "send_command: Следующее сообщение можно будет отправить через "+format(10-(tim1/1000))+" секунд..", 0);
pause (1000);
goto s;
}
textbkcolor (65280,0);
textout(0, x/2-160, y/2-200 , "send_command: Можно отправлять сообщение.", 2);
goto a;
}


get_command
CODE:
char ch[256];
string text;
int tim, tim1;
int col, x, y;
getdisplay(col, x, y);
a: readbuffernet(#ch[0], 256, -1, -1);
textbkcolor (8388608,65535);
textout(1, x/2-150, y/2+170, "get_command: Принято от send_command: ( "+format(#ch[0])+" )", 2);
tim=gettime();
s: tim1=gettime()-tim;
if (gettime()-tim<11000)
{
textbkcolor (255,65535);
textout(0, x/2-150, y/2+150, "get_command: Следующее сообщение будет принято через "+format(10-(tim1/1000))+" секунд..", 0);
pause (1000);
goto s;
}
textbkcolor (65280,0);
textout(0, x/2-50, y/2+150 , "get_command: Сообщение принято..", 2);
pause (1000);
goto a;


writebuffernet и readbuffernet доступны только для максимальной версии Кибор.

Демо режим доступен в количестве 5 использований функций writebuffernet и readbuffernet в процессе одного запуска программы Кибор и не в собранных exe. Демо режим возможен только с указанием третьего и четвертого параметров в -1.

Собранные в максимальной версии EXE так же будут работать на разных компьютерах пока версия Кибор в которой они собраны имеет максимальную лицензию.
 
 Top
Stanislaw
Отправлено: 05 Марта, 2015 - 19:14:37
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 56
Дата рег-ции: Дек. 2013  
Репутация: 2




А попробовать?
 
 Top
Kibor
Отправлено: 05 Марта, 2015 - 19:18:29
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8091
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




 Stanislaw пишет:
А попробовать?

проверить как работает? скачать демо сделанное в лицензированном Кибор http://kibor-bot.com/files/connection_kibor.rar
если проверить покодить то давайте в личку ключ я дам проверить.
 
 Top
Kibor
Отправлено: 06 Марта, 2015 - 14:33:58
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8091
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Сделал демо режим.

Демо режим доступен в количестве 5 использований функций writebuffernet и readbuffernet в процессе одного запуска программы Кибор и не в собранных exe. Демо режим возможен только с указанием третьего и четвертого параметров в -1.

можно использовать эти скрипты

запустить кибор. ввести скрипт для отправки:
CODE:
char ch[256];
string text;
int tim, tim1;
int col, x, y;
getdisplay(col, x, y);
a: text=input("Введите отправляемое сообщение");
if (text!="")
{
strcpy(#ch[0], text);
writebuffernet(#ch[0], size(#ch[0]), -1, -1);
tim=gettime();
s: tim1=gettime()-tim;
if (gettime()-tim<11000)
{
textbkcolor (255,0);
textout(0, x/2-260, y/2-200, "send_command: Следующее сообщение можно будет отправить через "+format(10-(tim1/1000))+" секунд..", 0);
pause (1000);
goto s;
}
textbkcolor (65280,0);
textout(0, x/2-160, y/2-200 , "send_command: Можно отправлять сообщение.", 2);
goto a;
}

запустить.



запустить копию кибор. ввести скрипт для приема:
CODE:
char ch[256];
string text;
int tim, tim1;
int col, x, y;
getdisplay(col, x, y);
a: if (messageboxyn("Принять сообщение?")==1)
{
if (readbuffernet(#ch[0], 256, -1, -1)==1)
{
textbkcolor (10485760,12632256);
textout(0, x/2-150, y/2+150 , "get_command: Сообщение принято..", 2);
textbkcolor (8388608,65535);
textout(1, x/2-150, y/2+170, "get_command: Принято от send_command: ( "+format(#ch[0])+" )", 2);
}
else
{
textbkcolor (255,12632256);
textout(0, x/2-150, y/2+150 , "get_command: Ожидание сообщения..", 2);
}
pause (1000);
tim=gettime();
s: tim1=gettime()-tim;
if (gettime()-tim<11000)
{
textbkcolor (255,65535);
textout(0, x/2-150, y/2+150, "get_command: Следующее сообщение будет принято через "+format(10-(tim1/1000))+" секунд..", 0);
pause (1000);
goto s;
}
goto a;
}

запустить.


Принять сообщение можно будет после отправки.
 
 Top
Stanislaw
Отправлено: 30 Марта, 2015 - 10:03:00
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 56
Дата рег-ции: Дек. 2013  
Репутация: 2




А возможно создание функции обмена данными по IP адресу, для применения в в одной сети. Без ограничения частоты вызовов. Пока приходиться обмениваться файлами на общем диске,что не очень оперативно. Спасибо.
 
 Top
Kibor
Отправлено: 30 Марта, 2015 - 10:19:36
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8091
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




 Stanislaw пишет:
А возможно создание функции обмена данными по IP адресу, для применения в в одной сети. Без ограничения частоты вызовов. Пока приходиться обмениваться файлами на общем диске,что не очень оперативно. Спасибо.

теоретически конечно. практически эти функции не очень то востребованы, если нечего делать будет..
 
 Top
Kibor
Отправлено: 31 Марта, 2015 - 00:42:18
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8091
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




 Stanislaw пишет:
А возможно создание функции обмена данными по IP адресу, для применения в в одной сети. Без ограничения частоты вызовов. Пока приходиться обмениваться файлами на общем диске,что не очень оперативно. Спасибо.


Создание сервера. Обмен данными между программами Кибор и EXE по схеме Клиент - Сервер - Клиент
разбирайтесь......
 
 Top
Andre Lenog
Отправлено: 31 Марта, 2015 - 22:58:12
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 65
Дата рег-ции: Март 2015  
Откуда: Украина
Репутация: 0




В киборе присутствует функция отправки информации на сайт(сервер). например чтобы с телефона можно было зайти и что-то поменять при получении определенных данных...??

(Отредактировано автором: 31 Марта, 2015 - 22:58:32)

 
 Top
Skycrew
Отправлено: 02 Апреля, 2015 - 03:31:00
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 123
Дата рег-ции: Июль 2014  
Репутация: 0




Прикольно!
 
 Top
Dantes3000
Отправлено: 30 Марта, 2017 - 22:40:48
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1458
Дата рег-ции: Июнь 2016  
Репутация: 58




Как передать число, а не char? Не понял как форматирование работает
 
 Top
Страниц (6): [1] 2 3 4 5 6 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by