ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

25.09.2009, 21:04
|
|
Участник форума
Регистрация: 26.08.2009
Сообщений: 133
Провел на форуме: 193434
Репутация:
79
|
|
2mailbrush
у тебя с логикой программы не в порядке. Ты смотри где интерлокед вызываешь. Глобальная переменная увеличится только пять раз, по числу создаваемых потоков, а в цикле её значение аж с 15 сравнивается.
да и это
PHP код:
for(i=0;i<=4;i++)
recv( s, response, 1024 , 0 );
тоже некорректно. память нужно выделять динамически и проверять возвращаемое recv значение.
Последний раз редактировалось Hiro Protagonist; 25.09.2009 в 21:06..
|
|
|

25.09.2009, 21:12
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Сообщение от Hiro Protagonist
2mailbrush
у тебя с логикой программы не в порядке. Ты смотри где интерлокед вызываешь. Глобальная переменная увеличится только пять раз, по числу создаваемых потоков, а в цикле её значение аж с 15 сравнивается.
да и это
PHP код:
for(i=0;i<=4;i++)
recv( s, response, 1024 , 0 );
тоже некорректно. память нужно выделять динамически и проверять возвращаемое recv значение.
Сейчас пороверю. Кстати, если не в цикле делать, recv не берет 5кб, а только 1кб, хотя я делаю 1024*5
|
|
|

25.09.2009, 21:16
|
|
Участник форума
Регистрация: 26.08.2009
Сообщений: 133
Провел на форуме: 193434
Репутация:
79
|
|
2mailbrush
дык в цикле и делай, только память динамически выделяй.
чтото типа
int i = 0;
char *buf = calloc(1024);
while(recv(s, &buf[i], 1024, 0))
{
...
i += 1024;
buf = realloc(buf, 1024 + i);
}
free(buf);
PS и не забывай ещё обрабатывать ошибки recv
|
|
|

25.09.2009, 21:17
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Поставил внутрь цикла while инкремент - первых пять потоков обрабатывают 5й айди, вторые 10, третье 15 и т.д... Эх...
Hiro Protagonist, меня пока интересует инкремент. В любом случае спасибо всем за помощь!
Последний раз редактировалось mailbrush; 25.09.2009 в 21:19..
|
|
|

25.09.2009, 21:19
|
|
Участник форума
Регистрация: 26.08.2009
Сообщений: 133
Провел на форуме: 193434
Репутация:
79
|
|
2mailbrush
я вообще не понимаю зачем тебе этот цикл. Делай так. чтобы один id обрабатывал один поток и умирал.
|
|
|

25.09.2009, 21:20
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Сообщение от Hiro Protagonist
2mailbrush
я вообще не понимаю зачем тебе этот цикл. Делай так. чтобы один id обрабатывал один поток и умирал.
Воо... Вот так я и хочу, но как? Чтобы была многпоточность...
|
|
|

25.09.2009, 22:04
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
вот вы фанаты-изобретатели-мазохисты. ну сделайте вы у функции обработки потока параметр. и скидывайте значение счетчика i. ибо без понимания, почему не канает вариант с глобальной переменной, изобретать вокруг него огород - тупо.
или юзайте мьютексы для ожидания момента окончательного считывания значения глобальной переменной в обработчике потока.
|
|
|

25.09.2009, 22:08
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Сообщение от Ra$cal
вот вы фанаты-изобретатели-мазохисты. ну сделайте вы у функции обработки потока параметр. и скидывайте значение счетчика i. ибо без понимания, почему не канает вариант с глобальной переменной, изобретать вокруг него огород - тупо.
или юзайте мьютексы для ожидания момента окончательного считывания значения глобальной переменной в обработчике потока.
Везде ты должен влезть... А если я не знаю как это? И в поиск меня посылать не надо, а если все таки хочешь послать - сначала сам найди в гугле ответ на это... Или просто помоги...
|
|
|

25.09.2009, 22:16
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
гугл "beginthread msdn" первая ссылка. скролишь пример и читаешь. правда сложно?
если чтото не понятно - спрашивай. тока леницо не надо.
ps: проще для понимания второй пример. если бы использовал _beginthreadex вопроса о параметрах не возникло бы.
Последний раз редактировалось Ra$cal; 25.09.2009 в 22:21..
|
|
|

25.09.2009, 22:31
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
Везде ты должен влезть...
ну если не хочешь, чтобы помогали - не пиши на форуме. мне влом запоминать ники обиженных судьбой, неспособных юзать гугл и голову.
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|