Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2011, 11:32   #1
Armatus
Форумчанин
 
Регистрация: 09.05.2009
Сообщений: 122
По умолчанию Оптимизация кода. Проблемы с не выгружаемым пулом.

Столкнулся с проблемой зависания ОС Windows 2003 server SP2 связанной с избыточным заполнением не выгружаемого пула памяти (как я понял это память процессора). Грешу на свой код, т.к. оптимизации никакой нет. С чем может быть связана эта проблема и прошу помощи и совета в оптимизации кода? код снизу:
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <winsock2.h>
#include <tchar.h>
#include <iostream.h>
#include <fstream>
#include <conio.h>
#pragma argsused
//---------------------------------------------------------------------------

//-------------------------------Переменные глобальные-----------------------
char msg[1024];
char msg1[1024];
char c[45];
//---------------------------------------------------------------------------

//-------------------------------Отправка сообщения--------------------------
int send(){
char t[11],d[8],n[7],h[2],m[2],s[2];
WSADATA wData;
struct sockaddr_in addr;
SOCKET sock;
strncpy(t,&c[0],11);          // Номер телефона
strncpy(d,&c[14],8);          // Дата
strncpy(n,&c[35],7);          // Номер накладной
strncpy(h,&c[23],2);          // Часы
strncpy(m,&c[26],2);          // Минуты
strncpy(s,&c[29],2);          // Секунды
						  //...  Формируем запрос
	 strcat(&msg[0],"POST /job.ap HTTP/1.1\r\nHost: 192.168.0.225\r\nConnection: keep-alive\r\n
Referer: http://192.168.0.225/index.html?page...ontent-Length: 350\r\n
Authorization: Basic cm9vdDpyb3V0ZXI=\r\nOrigin: http://192.168.0.225\r\n
X-Prototype-Version: 1.6.0.2\r\nX-Requested-With: XMLHttpRequest\r\n
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1\r\n
Content-type: application/x-www-form-urlencoded; charset=UTF-8\r\nAccept: text/javascript, text/html, application/xml, text/xml, */*\r\n
Accept-Encoding: gzip,deflate,sdch\r\nAccept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4\r\n
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3\r\n\r\njob=SMSNewMessageUpdate&pn=");
	 strncat(&msg[701],"89206053638",11);
	 strcat(&msg[712],"&message=");
	 strcat(&msg[721],"%D0%92%D0%B0%D1%88%D0%B0%20%D0%B7%D0%B0%D1%8F%D0%B2%D0%BA%D0%B0%20%E2%84%96%D0%91%D0%9E%D0%96");
	 strncat(&msg[814],n,11);
	 strcat(&msg[821],"%20%D0%BE%D1%82%20");
	 strncat(&msg[839],d,8);
	 strcat(&msg[847],"%20%D0%BD%D0%B0%D0%B1%D1%80%D0%B0%D0%BD%D0%B0%20%D0%B2%20");
	 strncat(&msg[904],h,2);
	 strcat(&msg[906],"%3A");
	 strncat(&msg[909],m,2);
	 strcat(&msg[911],"%3A");
	 strncat(&msg[914],s,2);
	 strcat(&msg[916],"!");
	 strcat(&msg[917],"&port=0&_=\r\n");
						//...
	 if(WSAStartup(MAKEWORD(1,1),&wData)!=0)
	{
		return 1;
	}
		sock=socket(AF_INET,SOCK_STREAM,0);
	if(sock==-1)
	{
		return 2;
	 WSACleanup();
	}
	addr.sin_family=AF_INET;
	addr.sin_port=htons(80);
	addr.sin_addr.s_addr=inet_addr("192.168.0.225");
	 if (connect(sock,(struct sockaddr *)&addr,sizeof(addr))!=0) {

	   return 3;
		shutdown(sock,2);
	 closesocket(sock);
	 WSACleanup();
	 }
	 send(sock,&msg[0],sizeof(msg),0);   //Отправляем запрос
	 memset(msg1,0,sizeof(msg1));         //Чистим переменную
	 memset(msg,0,sizeof(msg));           //Чистим переменную
	 recv(sock,&msg1[0],sizeof(msg1),0);                    //читаем ответ
	  shutdown(sock,2);
	 closesocket(sock);
	 WSACleanup();
	 Sleep(20000);
	 return 0;
}

//-------------------------------Читаем и записываем файлик------------------
int str(){
ifstream fr(strcat(Date().FormatString("yyyymmdd").t_str(),".txt"));       //открываем файл на чтение и запись
if (!fr){
printf("File not found!!!\r\n");
Sleep(5000);
return 0;}else{
int i=0;
while(!fr.eof()){
fr.getline(&c[0],45,'\n');
if (c[12]=='1')  //проверка на корректность номера
{switch (send()){
case 1:
printf("Error initialization WSAStartup!!!\r\n");
Sleep(5000);
break;
case 2:
printf("Error initialization variable socket!!!\r\n");
Sleep(5000);
break;
case 3:
printf("Error initialization connect!!!\r\n");
Sleep(5000);
break;
case 4:
printf("Error sending!!!\r\n");
Sleep(5000);
break;
case 0:
if (fr.eof()) {i=fr.tellg()-31;}else{i=fr.tellg()-33;} // выявляем последнюю строку
	 fstream fw(strcat(Date().FormatString("yyyymmdd").t_str(),".txt"));
	 fw.seekg(i,ios::beg); //перемещаем указатель
	 fw.put('0');//меняем символ на 0
	 fw.close();
	 }
}
}
fr.close();
return 0;    }   //Все ок!
}

//-------------------------------Тело Программы------------------------------
int main() //
{
SetConsoleTitle("SMSSender");
HWND hwnd;
hwnd = FindWindow(NULL, "SMSSender");
ShowWindow(hwnd, SW_MINIMIZE);
 if (Now().FormatString("HH").ToInt()>21||Now().FormatString("HH").ToInt()<9){
 return 0;}
 else{
str();
}
	return 0;
}

Последний раз редактировалось Armatus; 07.09.2011 в 12:36.
Armatus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
оптимизация кода GerNick Общие вопросы C/C++ 3 24.12.2010 16:40
Оптимизация кода. Alex Cones Общие вопросы Delphi 19 12.10.2009 20:51
Оптимизация кода Terran Общие вопросы Delphi 6 01.11.2008 16:57
Оптимизация кода [Smarik] Gamedev - cоздание игр: Unity, OpenGL, DirectX 9 20.08.2008 15:00
Оптимизация кода. MAKTECYMA Общие вопросы C/C++ 2 05.06.2008 16:48