Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

05.09.2009, 21:55
|
|
Постоянный
Регистрация: 01.04.2009
Сообщений: 508
Провел на форуме: 949257
Репутация:
194
|
|
указал номер верно, указал текст верно) и дулька)))
|
|
|

05.09.2009, 23:52
|
|
Участник форума
Регистрация: 29.11.2007
Сообщений: 116
Провел на форуме: 283596
Репутация:
88
|
|
Gar|k
А можно детальнее про временные интервалы, кроме одной минуты и 50 смс в день?
|
|
|

06.09.2009, 01:13
|
|
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме: 991929
Репутация:
395
|
|
AKYLA, когда я в прошлом году сделал этот клиент я попробывал написать рассылку, но тут же столкнулся с проблемой минутного интервала. Писать обработку сообщений сервера мне было лень и я забросил эту идею. Попробуй, потестируй, погляди что возвращает сервер, обычно это сообщение (1036 вроде) в котором текстом в rtf объясняется причина по которой СМС не может быть доставлена.
|
|
|

06.09.2009, 02:23
|
|
Постоянный
Регистрация: 01.04.2009
Сообщений: 508
Провел на форуме: 949257
Репутация:
194
|
|
так почему не отправляется то? не могу понять  извините за непонимание, но все верно указываю!
|
|
|

06.09.2009, 05:32
|
|
Участник форума
Регистрация: 29.11.2007
Сообщений: 116
Провел на форуме: 283596
Репутация:
88
|
|
Gar|k
Ну я пока нашел ограничения это - минута, через 10 сообщений если тебе не отвечает абонент так же смс'кой то ты блокируешься на 24 часа. (хитро придумано, ведь ответные смс с тела на агент платные )))
Тесты показали, если с нового ака маил.ру пытаться отправить, ничего не будет, для этого обязательно нужно в контакты занести хотя бы один контакт с номером (потом его можно и удалить) и только тогда будет возможность отсылать без маил агента.
|
|
|

06.09.2009, 11:45
|
|
Постоянный
Регистрация: 01.04.2009
Сообщений: 508
Провел на форуме: 949257
Репутация:
194
|
|
Сообщение от AKYLA
Gar|k
Ну я пока нашел ограничения это - минута, через 10 сообщений если тебе не отвечает абонент так же смс'кой то ты блокируешься на 24 часа. (хитро придумано, ведь ответные смс с тела на агент платные )))
Тесты показали, если с нового ака маил.ру пытаться отправить, ничего не будет, для этого обязательно нужно в контакты занести хотя бы один контакт с номером (потом его можно и удалить) и только тогда будет возможность отсылать без маил агента.
понятно почему не отправлялосЬ))))
|
|
|

01.11.2009, 22:57
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Сообщение от AKYLA
Gar|k
Ну я пока нашел ограничения это - минута, через 10 сообщений если тебе не отвечает абонент так же смс'кой то ты блокируешься на 24 часа. (хитро придумано, ведь ответные смс с тела на агент платные )))
Тесты показали, если с нового ака маил.ру пытаться отправить, ничего не будет, для этого обязательно нужно в контакты занести хотя бы один контакт с номером (потом его можно и удалить) и только тогда будет возможность отсылать без маил агента.
А какие ещё есть ограничения?На номер телефона,айпи,или номер мобилы и айпи?
|
|
|

28.02.2010, 07:19
|
|
Познающий
Регистрация: 18.11.2009
Сообщений: 32
Провел на форуме: 79162
Репутация:
92
|
|
"Бороть" 50 СМС в сутки или 1 минуту не надо. В 1 поток быстрее чем 1 СМС в секунду не отшлешь. Решение - Вешаем 1К акков и вперед. По одному на секунду в цикле 50.
Добавление/удаление телефона в контакты не нужно. Для отправки СМС нужно чтобы хотя бы в один контакт был добавлен номер телефона. Решение - добавляем любой "левый" номер в контакт Support (по умолчанию он у любого акка есть), а потом шлем СМС на любой нужный номер. Вот этот самый номер в контакты можно не писать. Все равно отправляет. Можно добавить проверку на наличие номеров в контактах акка, тогда вообще остается только отправить СМС-ку безо всяких добавлений. ИП вроде не "палится", но это надо массово проверять..
Удачных экспериментов.
Последний раз редактировалось ky_kask; 28.02.2010 в 07:25..
|
|
|

28.02.2010, 18:27
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
У меня ип от таких приколов в бан на 3е суток уходил где то на 15 - 20й смске
|
|
|

18.03.2010, 13:29
|
|
Познающий
Регистрация: 04.03.2010
Сообщений: 32
Провел на форуме: 32525
Репутация:
23
|
|
Gar|k как думаеш это пдойдет для асинхронных ответов серверу ?
отбработки ошибок нет для наглядности
Код:
typedef struct THREAD_INFO
{
CONST PCHAR pMsg;
HANDLE hCompleteInit;
} THREAD_INFO, *PTHREAD_INFO;
DWORD WINAPI SendThread(PTHREAD_INFO th)
{
SOCKET s;
PCHAR pMsg = malloc(strlen(th->pMsg)+1);
strcpy(pMsg, th->pMsg);
SetEvent(th->hCompleteInit); /* SendMsg выходиь из ожидания и завершается */
s = conct(MmpAddr); /* connect */
send(s, pMsg, strlen(pMsg), 0);
free(pMsg);
closesocket(s);
return ERROR_SUCCESS;
}
VOID SendMsg(CONST PCHAR pMsg)
{
HANDLE hThread;
THREAD_INFO th = {pMsg};
th.hCompleteInit = CreateEvent(NULL, FALSE, FALSE, NULL);
hThread = CreateThread(NULL, 0, SendThread, &th, 0, NULL);
WaitForSingleObject(th.hCompleteInit, INFINITE);
CloseHandle(th.hCompleteInit);
CloseHandle(hThread);
}
идея такая чтоб если надо часто отправлять ответы количество одновременно работающих потоков увеличивалось все равно они все на вводе выводе приостановятся чтоб отправлять за раз много ответов а когда запросы нечастые нет ни одного потока
крутил крутил как сделать получилось это затраты на создание структур ядра потока и помещение его в очередь небольшие но все равно мне не нравится решение с постоянным созданием потоков сначал думал держать поток на событии но потом прикинул что мне надо например 10 потоков отправляли одновремено 10 событий ?
1 если собитые то или один поток проснется если с автосбросом или все если с ручным сбросом один если просыпатся будет неподходит так как отправка тогда не асинхронно будет выполнятся все тоже не пойдет если я передаю один запрос всего в минуту да и вот еще что допустим из какого то потока вызов SendMsg("MRIM_CS_HELLO"); так как вызов асихронный то она вернет управление и выйдет из функции ее вызывавшей буфер разрушится когда поток получит время начнет отсылать и прочитает из стека черти что поэтому пришлось сделать так
тут блокируем вызывабщий поток пока поток когда получит время не скопирует себе строку в кучу
Код:
th.hCompleteInit = CreateEvent(NULL, FALSE, FALSE, NULL);
hThread = CreateThread(NULL, 0, SendThread, &th, 0, NULL);
WaitForSingleObject(th.hCompleteInit, INFINITE);
а поток когда проснется первым делом скопирует строку
Код:
PCHAR pMsg = malloc(strlen(th->pMsg)+1);
strcpy(pMsg, th->pMsg);
SetEvent(th->hCompleteInit);
маякнет вызывающему потоку что он закончил тот выйдет из вызова
SendMsg("MRIM_CS_HELLO");
и можно уже не опасатся из какого контекста вызывалась функция фактически только задержка на событии для копирования строки получается но мне это не нравится как то есть идеи как лучше отправку организовать ?
еще вариант с пулом поколдовать там хоть не надо создавать треды так часто
QueueUserWorkItem
в коде фактически придется только заменить CreateThread на QueueUserWorkItem
наверно эффективней должно быть хоть потоки завершатся не будут
набрел на твою статью решил поигратся с протоколом )))
кстати запости заголовок пакета которые отправляются перед сообщением который а то у меня маил агентов нет а ставить че то как то не очень то и надо ))
фактически вот сразу попробовал решение с пулом потоков вот что получилось
Код:
typedef struct THREAD_INFO
{
CONST PCHAR pMsg;
HANDLE hCompleteInit;
} THREAD_INFO, *PTHREAD_INFO;
DWORD WINAPI SendThread(PTHREAD_INFO th)
{
SOCKET s;
PCHAR pMsg = malloc(strlen(th->pMsg)+1);
strcpy(pMsg, th->pMsg);
SetEvent(th->hCompleteInit);
s = conct(MmpAddr);
send(s, pMsg, strlen(pMsg), 0);
free(pMsg);
closesocket(s);
return ERROR_SUCCESS;
}
VOID SendMsg(CONST PCHAR pMsg)
{
THREAD_INFO th = {pMsg};
th.hCompleteInit = CreateEvent(NULL, FALSE, FALSE, NULL);
QueueUserWorkItem(SendThread, &th,
WT_EXECUTEDEFAULT|WT_EXECUTELONGFUNCTION);
WaitForSingleObject(th.hCompleteInit, INFINITE);
CloseHandle(th.hCompleteInit);
}
работает много параллельных запросов из пула данные тоже корректно на событии
копируются вызывающий поток который хочеит отправить сообщение ждет только
пока потоку в пуле выделится время он скопирует пакет себе в память и тут же освобождает поток который хочет отправить сообщение
уже что то ))
есть мысли как сделать лучше ?))
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|