В чем ошибка? С логикой вроде в порядке:
CODE://...Куча скриптов
//Для сервера:loop()
{
mu_pause (1000);
if (flag_button20[0]==1 && text_button20[0]=="Отправить")
{
if (text_edit20[0]!="")
{
text_static20[0]="[]" + text_edit0[0]+": "+text_edit20[0]+perevod+text_static20[0];
text_edit20[0]="";
strcpy(#sends[0], text_static20[0]);//заполним массив передачи текстом с второго edit
sendport (#sends[0], size(#sends[0]));//отправим
}
else
{
flag_button20[0]=0;
}
}
}
/////////////////////////////
function mu_pause(int p)//реализация паузы что бы не зависал на время ее скрипт
{
for (int t=gettime(); gettime()-t<p; sleep(10)){}
}
//////////////////////////
CREATE_TIMER(0, 50)
{
if (flag_recv==1)//если тут 1 - пришло сообщение
{
flag_recv=0;//обнулим
text_static20[0]=format(#recvs[0]);//запишем это сообщение
}
recvport (#recvs[0], 256, #flag_recv); // опять слушаем
}
(Добавление)
CODE://для клиента:
//куча скриптов...
//////////////////
function mu_pause(int pu)//реализация паузы что бы не зависал на время ее скрипт
{
for (int ty=gettime(); gettime()-ty<pu; sleep(10)){}
}
/////////////////////
loop()
{
textout(0, 0, 0, format(nh), 0);
nh++;
mu_pause (500);
}
/////////////////////
CREATE_TIMER(3, 50)
{
if (flag_button20[0]>0 && text_button20[0]=="Отправить")//если нажата кнопка
{
if (text_edit20[0]!="")//если поле не пустое
{
if (count==10)//если время вышло(паузка после отправки)
{
text_static20[0]=status+text_edit0[0]+": "+text_edit20[0]+perevod+text_static20[0];
text_edit20[0]="";
strcpy(#sends[0], text_static20[0]);//заполним массив передачи текстом с второго edit
sendhtml(#sends[0], size(#sends[0]))>0;
enabletimer(1);
}
}
else
{
flag_button20[0]=0;
}
if (opensocket ("127.0.0.1", 10005)==1)//откроем сокет на 10005 порту сервера (самому выбирать)
{
if (recvhtml(#recvs[0], 256)>0) text_static20[0]=format(#recvs[0]);//когда примем ответ запишем ответ в edit
}
closesocket ();//Закрываем сокет
}
}
|