|
Indy 서버와 클라이언트가 서로 연결을 유지하고 있는상태에서
<클라이언트에서 버튼을 눌렀을 때 서버에서 응답하는 부분>
void __fastcall TfrmMain::IdTCPServer1Execute(TIdContext *AContext)
{
AnsiString stTemp = AContext->Connection->Socket->ReadLn();
AnsiString sTemp, _sWHERE, _sTmpQry, sResult;
int iTemp;
// ListBox1->Items->Add(stTemp);
for (int i = 0; i < RecordCount; i++) {
_sTmpQry.sprintf("Select * from 테이블명%s", _조건);
DB->m_csLock->Acquire();
try
{
DB->QryColletTCP->Connection = DB->DbConn;
DB->QryColletTCP->Close();
DB->QryColletTCP->SQL->Clear();
DB->QryColletTCP->SQL->Add (_sTmpQry);
DB->QryColletTCP->Open();
sTemp = DB->QryColletTCP->FieldByName("필드명")->AsString;
iTemp = DB->QryColletTCP->FieldByName("필드명")->AsInteger;
}
__finally
{
DB->m_csLock->Release();
}
sResult.sprintf("( %s ) : %d", sTemp, iTemp);
AContext->Connection->Socket->WriteLn(sResult);
}
}
<클라이언트에서 타이머를 돌려서 DB데이터를 메모장에 받는 부분>
void __fastcall TfrmClient::Timer1Timer(TObject *Sender)
{
AnsiString stTemp;
if (IdTCPClient1->Connected() == true) {
// stTemp = IdTCPClient1->IOHandler->ReadLn("\n", 5);
stTemp = IdTCPClient1->Socket->ReadLn("\n", 10);
if (stTemp.Length() > 0) {
StockList->Items->Add(stTemp);
}
}
}
이런식으로 소스를 작성했는데요
클라이언트의 메모장에는 아무런 반응이 없네요 도와주세요
|