ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 25.09.2009, 21:04
Hiro Protagonist
Участник форума
Регистрация: 26.08.2009
Сообщений: 133
Провел на форуме:
193434

Репутация: 79
Отправить сообщение для Hiro Protagonist с помощью ICQ
По умолчанию

2mailbrush

у тебя с логикой программы не в порядке. Ты смотри где интерлокед вызываешь. Глобальная переменная увеличится только пять раз, по числу создаваемых потоков, а в цикле её значение аж с 15 сравнивается.

да и это

PHP код:
for(i=0;i<=4;i++)
recvsresponse1024 ); 
тоже некорректно. память нужно выделять динамически и проверять возвращаемое recv значение.

Последний раз редактировалось Hiro Protagonist; 25.09.2009 в 21:06..
 

  #12  
Старый 25.09.2009, 21:12
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

Цитата:
Сообщение от Hiro Protagonist  
2mailbrush

у тебя с логикой программы не в порядке. Ты смотри где интерлокед вызываешь. Глобальная переменная увеличится только пять раз, по числу создаваемых потоков, а в цикле её значение аж с 15 сравнивается.

да и это

PHP код:
for(i=0;i<=4;i++)
recvsresponse1024 ); 
тоже некорректно. память нужно выделять динамически и проверять возвращаемое recv значение.
Сейчас пороверю. Кстати, если не в цикле делать, recv не берет 5кб, а только 1кб, хотя я делаю 1024*5
 

  #13  
Старый 25.09.2009, 21:16
Hiro Protagonist
Участник форума
Регистрация: 26.08.2009
Сообщений: 133
Провел на форуме:
193434

Репутация: 79
Отправить сообщение для Hiro Protagonist с помощью ICQ
По умолчанию

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
 

  #14  
Старый 25.09.2009, 21:17
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

Поставил внутрь цикла while инкремент - первых пять потоков обрабатывают 5й айди, вторые 10, третье 15 и т.д... Эх...

Hiro Protagonist, меня пока интересует инкремент. В любом случае спасибо всем за помощь!

Последний раз редактировалось mailbrush; 25.09.2009 в 21:19..
 

  #15  
Старый 25.09.2009, 21:19
Hiro Protagonist
Участник форума
Регистрация: 26.08.2009
Сообщений: 133
Провел на форуме:
193434

Репутация: 79
Отправить сообщение для Hiro Protagonist с помощью ICQ
По умолчанию

2mailbrush

я вообще не понимаю зачем тебе этот цикл. Делай так. чтобы один id обрабатывал один поток и умирал.
 

  #16  
Старый 25.09.2009, 21:20
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

Цитата:
Сообщение от Hiro Protagonist  
2mailbrush

я вообще не понимаю зачем тебе этот цикл. Делай так. чтобы один id обрабатывал один поток и умирал.
Воо... Вот так я и хочу, но как? Чтобы была многпоточность...
 

  #17  
Старый 25.09.2009, 22:04
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

вот вы фанаты-изобретатели-мазохисты. ну сделайте вы у функции обработки потока параметр. и скидывайте значение счетчика i. ибо без понимания, почему не канает вариант с глобальной переменной, изобретать вокруг него огород - тупо.
или юзайте мьютексы для ожидания момента окончательного считывания значения глобальной переменной в обработчике потока.
 

  #18  
Старый 25.09.2009, 22:08
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

Цитата:
Сообщение от Ra$cal  
вот вы фанаты-изобретатели-мазохисты. ну сделайте вы у функции обработки потока параметр. и скидывайте значение счетчика i. ибо без понимания, почему не канает вариант с глобальной переменной, изобретать вокруг него огород - тупо.
или юзайте мьютексы для ожидания момента окончательного считывания значения глобальной переменной в обработчике потока.
Везде ты должен влезть... А если я не знаю как это? И в поиск меня посылать не надо, а если все таки хочешь послать - сначала сам найди в гугле ответ на это... Или просто помоги...
 

  #19  
Старый 25.09.2009, 22:16
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

гугл "beginthread msdn" первая ссылка. скролишь пример и читаешь. правда сложно?
если чтото не понятно - спрашивай. тока леницо не надо.
ps: проще для понимания второй пример. если бы использовал _beginthreadex вопроса о параметрах не возникло бы.

Последний раз редактировалось Ra$cal; 25.09.2009 в 22:21..
 

  #20  
Старый 25.09.2009, 22:31
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

Цитата:
Везде ты должен влезть...
ну если не хочешь, чтобы помогали - не пиши на форуме. мне влом запоминать ники обиженных судьбой, неспособных юзать гугл и голову.
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ