|
이거 글쓸때마다 질문이라서 죄송합니다...
답변할만큼 실력이 충분하지 못해서요 ㅜㅜ
지금 소켓을 이용한 메세지 전달 테스트를 하는데요
메세지를 반복적으로 계속 보내야되서 for문으로 반복해서 보내고 그것을 카운트 하는 프로그램을 짜봤습니다...
한번에 한섭에 여러 클라이언트를 연결해서 보내야 되서
클라이언트 세개와 서버 하나로 돌리고 있는데요....
근데
어느정도 받다가 (약 4000번)서버쪽에서 프로그램이 죽어버리네요...
메모리 누적이나 쓰레드 누적으로 죽는 것으로는 보이지 않는데요....
클라이언트가 하나로 보내든 세개로 보내든 마찬가지입니다...
사용한 컴포넌트는 nmmsgserv 와 nmmag구요....
보내는 부분의 소스는
//---------------------------------------------------------------------------
void __fastcall TFormMain::Edit1KeyPress(TObject *Sender, char &Key)
{
int i;
if (Key == 13)
{
NMMsg1->Host = Edit3->Text;
NMMsg1->FromName = Edit2->Text;
for (i=0;i<10000;i++) { //한번 입력하면 만번을 보내게 해놨음
NMMsg1->PostIt(IntToStr(i));
Sleep(100); //한번 보낼때 0.1초에 간격을 둠
}
}
}
//---------------------------------------------------------------------------
이것이구요
받는 서버 부분의 소스는
//---------------------------------------------------------------------------
void __fastcall TFormMain::NMMSGServ1MSG(TComponent *Sender,
const AnsiString sFrom, const AnsiString sMsg)
{
Label3->Caption = sFrom+"::"+sMsg;
count++;
Label4->Caption = "Count ::" + IntToStr(count); /메세지를 받은 횟수를 카운트...
}
//---------------------------------------------------------------------------
입니다...
왜 죽는지 안죽는 방법은 없는지.. 좀 알려주십시요.....
|