Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 3.36 Обмен данными, контроль и управление другой программой по сети интернет.

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

1. Kibor - 05 Марта, 2015 - 08:09:13 - перейти к сообщению
В этой версии появилась возможность с помощью функций 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 так же будут работать на разных компьютерах пока версия Кибор в которой они собраны имеет максимальную лицензию.
2. Stanislaw - 05 Марта, 2015 - 11:14:37 - перейти к сообщению
А попробовать?
3. Kibor - 05 Марта, 2015 - 11:18:29 - перейти к сообщению
 Stanislaw пишет:
А попробовать?

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

Демо режим доступен в количестве 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;
}

запустить.


Принять сообщение можно будет после отправки.
5. Stanislaw - 30 Марта, 2015 - 02:03:00 - перейти к сообщению
А возможно создание функции обмена данными по IP адресу, для применения в в одной сети. Без ограничения частоты вызовов. Пока приходиться обмениваться файлами на общем диске,что не очень оперативно. Спасибо.
6. Kibor - 30 Марта, 2015 - 02:19:36 - перейти к сообщению
 Stanislaw пишет:
А возможно создание функции обмена данными по IP адресу, для применения в в одной сети. Без ограничения частоты вызовов. Пока приходиться обмениваться файлами на общем диске,что не очень оперативно. Спасибо.

теоретически конечно. практически эти функции не очень то востребованы, если нечего делать будет..
7. Kibor - 30 Марта, 2015 - 16:42:18 - перейти к сообщению
 Stanislaw пишет:
А возможно создание функции обмена данными по IP адресу, для применения в в одной сети. Без ограничения частоты вызовов. Пока приходиться обмениваться файлами на общем диске,что не очень оперативно. Спасибо.


Создание сервера. Обмен данными между программами Кибор и EXE по схеме Клиент - Сервер - Клиент
разбирайтесь......
8. Andre Lenog - 31 Марта, 2015 - 14:58:12 - перейти к сообщению
В киборе присутствует функция отправки информации на сайт(сервер). например чтобы с телефона можно было зайти и что-то поменять при получении определенных данных...??
9. Skycrew - 01 Апреля, 2015 - 19:31:00 - перейти к сообщению
Прикольно!
10. Dantes3000 - 30 Марта, 2017 - 14:40:48 - перейти к сообщению
Как передать число, а не char? Не понял как форматирование работает

Powered by ExBB FM 1.0 Final