Здравствуйте, remark, Вы писали:
R>Здравствуйте, Michael Chelnokov, Вы писали:
MC>>Здравствуйте, Agygy, Вы писали:
A>>>for(int j=0; j<100; j++)
A>>>{
A>>> CSocket s;
A>>> s.Create();
A>>> if (s.Connect("localhost", 21))
A>>> {
A>>> s.Send("12345", 5);
A>>> }
MC>>s.Close();
A>>>}
R>А на WinXP sp2 с mfc71 это не поможет!
R>День искал, почему у тестировщика на машине память утекает, а у меня всё нормально. В итоге обнаружил интересную вещь.
R>Если выполнить такой фрагмент
R>R>AfxSocketInit();
R>for (int i = 0; i < 10000; ++i)
R>{
R> CSocket sock;
R> sock.Create();
R> sock.Close();
R>}
R>
R>Программа сьедает 12Мб (!) памяти. На Win2k работает нормально.
R>
R>
R>
Стандартный совет: не используйте MFC-шные сокеты. Я не знаю сколько человек должен был выпить накануне,
чтобы написать такую херню как CSocket и CAsyncSocket.
Теперь по поводу утечки. Это естественно MFC-шная бага, обойти ее можно созданием дополнительного сокета в начале
работы приложения и пусть себе висит все время работы.