Описание: Обмен данными, контроль и управление другой программой по сети интернет. |
Поиск в теме | Версия для печати |
Kibor |
Отправлено: 01 Марта, 2018 - 20:29:54
|
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
AdryV пишет: а можно пример сервера?(прием/отправка) и клиент?(прием/отправка)
Отправка
CODE:char s[1000];
string text="Наше_сообщение";
if (opensocket ("site.com", 80)==1)
{
strcpy(#s[0], "GET http:/"+"/site.com/write_read.php?a=write&text="+text+" HTTP/1.0");
int sizf=size(#s[0]);
//Записываем \r\n\r\n - конец заголовка
s[sizf]=formatic(13);s[sizf+1]=formatic(10);s[sizf+2]=formatic(13);s[sizf+3]=formatic(10);
if (sendhtml(#s[0], sizf+4)>0)
closesocket ();
}
Чтение
CODE:char s[100];
char p[9999];
if (opensocket ("site.com", 80)==1)
{
strcpy(#s[0], "GET http:/"+"/site.com/write_read.php?a=read HTTP/1.0");
int sizf=size(#s[0]);
//Записываем \r\n\r\n - конец заголовка
s[sizf]=formatic(13);s[sizf+1]=formatic(10);s[sizf+2]=formatic(13);s[sizf+3]=formatic(10);
if (sendhtml(#s[0], sizf+4)>0)
{
recvhtml(#p[0], 9999);
messagebox (format(#p[0]));
}
closesocket ();
}
Скрипт write_read.php
CODE:<?php
error_reporting(0);
//////////////////////////////////////
if ($_GET['a']=='read')
{
echo file_get_contents('file');
}
//////////////////////////////////////
if ($_GET['a']=='write')
{
$fp = fopen('file', 'w');
fwrite($fp, $_GET['text']);
fclose ($fp);
}
?> |
|
|
Kibor |
Отправлено: 02 Марта, 2018 - 18:56:15
|
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
На данные функции действует ограничение по частоте вызова. Один раз за 10 (+рандомно 0 - 3 секунды) секунд между вызовами пары writebuffernet и readbuffernet и 25 (+рандомно 0 - 3 секунды) секунд между вызовами одноименных функций. Поэтому код надо строить так что бы не было чаще вызовов.
Иначе программа будет простаивать оставшееся время и сигналить звуком.
Так же допускается не чаще одного раза в 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 сек повторно
} |
|
|
007wan |
Отправлено: 26 Августа, 2019 - 10:26:33
|
Эксперт
Покинул форум
Сообщений всего: 1837
Дата рег-ции: Март 2017
Репутация: -2
|
Этот код читает данные из интернетовского буфера и парсит его.
Шаблон: Цитата: Ник|Забанен/Не забанен|Время бана|Статус|
Это я раньше такой фигней занимался, но потом понял, что не очень создавать систему на этой основе, а то время там ждать целых 5 секунд))Для записи (Отобразить)CODE:
string ah;
char ch[256];
int A;
string tt;
int l;
string s[4];
s[0]="1";//сюда записываем данные для 1 ячейки итд, потом он это сохранит
s[1]="2";
s[2]="3";
s[3]="4";
ah=s[0]+"|"+s[1]+"|"+s[2]+"|"+s[3]+"|";
writebuffernet(#ch[0], A, "kluch_prog", -1);
readbuffernet(#ch[0], 256, "kluch_prog", -1);
messagebox (format(#ch[0]));
Для чтения (Отобразить)CODE:readbuffernet(#ch[0], 256, "kluch_prog", -1);
ah=format(#ch[0]);
A=size(ah);
strcpy(#ch[0], ah);
tt="";
l=0;
for (int j=0; j<size(ah); j++)
{
if (ch[j]=='|')//Разделитель
{
s[0+l]=tt;
messagebox(s[0+l]);
l++;
tt="";
}
else tt=tt+ch[j];
}
(Добавление)
Kibor пишет: На данные функции действует ограничение по частоте вызова. Один раз за 10 (+рандомно 0 - 3 секунды) секунд между вызовами пары writebuffernet и readbuffernet и 25 (+рандомно 0 - 3 секунды) секунд между вызовами одноименных функций. Поэтому код надо строить так что бы не было чаще вызовов.
Иначе программа будет простаивать оставшееся время и сигналить звуком.
Так же допускается не чаще одного раза в 3 секунды обращаться к серверу этими функциями любым программам собранным в одном Кибор (с одним ключом). Иначе функции вернут -10 и не отработают по назначению. Связи с чем такое большое ограничение?
(Добавление)(Отредактировано автором: 26 Августа, 2019 - 10:43:19) |
|
|
Dantes3000 |
Отправлено: 22 Ноября, 2019 - 11:01:51
|
Эксперт
Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016
Репутация: 58
|
Подскажите, пожалуйста, как осуществить такую штуку в Киборе:
на zzz.com.ua/ftp лежит файлик
Спойлер (Отобразить)PHP:<?php
error_reporting(0);
//////////////////////////////////////
if ($_GET['a']=='read')
{
echo file_get_contents($_GET['file']);
}
//////////////////////////////////////
if ($_GET['a']=='write')
{
$fp = fopen($_GET['file'], 'a');
fwrite($fp, $_GET['text']);
fclose ($fp);
}
if ($_GET['a']=='clear')
{
$fp = fopen($_GET['file'], 'w');
fwrite($fp, $_GET['text']);
fclose ($fp);
}
?>
через Питон к нему обращаюсь так:
Спойлер (Отобразить)CODE:def SendTextZzz(txt, text, method):
r=requests.post('http://getsub.zzz.com.ua/writer.php?a='+method+'&text='+text+'&file='+txt)
return
txt = имя файла, если такого нет - он создается
text = текст, который запишется в файл
method = read/write/clear
Как это сделать в киборе? |
|
|
|
Поиск в теме | Версия для печати |
Страниц (6): « 1 2 3 [4] 5 6 » |
Сейчас эту тему просматривают: 12 (гостей: 12, зарегистрированных: 0) |
« О программе Кибор » |
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|