Показать сообщение отдельно

  #3  
Старый 19.07.2007, 21:21
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

> причем тут блокнот это первый опыт в сетевом кодинге я просил посмотреть и высказать мнения, указать слабые места, показать как лучше.

НИКАК не лучше и НИКАК не хуже потому что это просто ПРОКСИ, сорцов которого полно в инете на каждом сайте.

> -язык с+api
поведуй, что это а язык такой c+api?

хотя знаешь, тупости я в сорцах немного нашел. видимо это свойство интересного языка c+api, НО
Код:
		if(wParam==IDSERVER)
		{
			char cStatServ[15];
			GetDlgItemText(hWnd,IDSERVER,cStatServ,15);
			if(!strcmp(cStatServ,"Start Server"))
вот это что?) (хотябы [16] элементов бы задал для правильности)
какой ещё GetDlgItemTextA() ? сделай флаг g_bStarted = TRUE/FALSE; и всё

далее
Код:
void CenterWindow(HWND hWnd)
{
	RECT rt;
	GetWindowRect(hWnd,&rt);
	MoveWindow(hWnd,
						 (GetSystemMetrics(SM_CXSCREEN)-rt.right)>>1,
						 (GetSystemMetrics(SM_CYSCREEN)-rt.bottom)>>1,
						 rt.right-rt.left,
						 rt.bottom-rt.top,
						 0);
}
абсолютно бессмысленно - можно просто указать что диалог будет по центру, что указывается в настройках ресурса "ДИАЛОГ"

и вот это тупо тоже
Код:
while(strncmp(cBuf+iResult-4,"\r\n\r\n",4));
если только схематично, а так нет смысла вызывать strncmp

РАЗМЕР
У тебя рантайм используется. Отключай
#pragma comment(linker,"/entry:EntryPoint")
void EntryPoint( void )
// точка входа

в WM_COMMAND:IDCANCEL
Код:
		WSACleanup();
		EndDialog(hWnd,0);
		ExitProcess(0);
неправильно, правильнее будет вызывать EndDialog()
а в обработчике WM_CLOSE делать ExitProcess() или PostQuitMessage( 0 );

ещё нужно вызывать TerminateThread( hThread, 0 );
иначе нахер ты сохраняешь хенлд созданого потока?
и ещё, поставил бы ты таймауты на поток, обслуживающий клиент.

Последний раз редактировалось KEZ; 19.07.2007 в 21:33..
 
Ответить с цитированием