ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #IdTCPServer
    C++ Builder/Control 2019. 1. 8. 16:54

    #IdTCPServer


    void __fastcall TForm1::IdTCPServer1Connect(TIdContext *AContext)

    {

    AnsiString IP = "Connect : " + AContext->Binding->PeerIP;

    ListBox1->Items->Add(IP);

    }

    // 현재 접속된 Client의 IP주소를 읽어서 ListBox에 Display한다.

    //---------------------------------------------------------------------------

    void __fastcall TForm1::IdTCPServer1Disconnect(TIdContext *AContext)

    {

    AnsiString IP = "Disconnect : " + AContext->Binding->PeerIP;

    ListBox1->Items->Add(IP);

    }


    //Disconnect할 Client의 IP주소를 읽어서 ListBox에 Display한다.


    void __fastcall TForm1::IdTCPServer1Execute(TIdContext *AContext)

    {

    AnsiString Message;

    try{

    Message = AContext->Connection->IOHandler->ReadLn("", enUTF8);       

     //    Client로부터의 입력을 대기

    }catch(...){

    Close();

    }



    ListBox1->Items->Add(Message);

    AContext->Connection->Socket->WriteLn(Message, enUTF8);

    AnsiString Name = GetData(Message, "Name");

    AnsiString 메세지내용 = GetData(Message, "Msg"); // 한글변수 사용가능.

    AnsiString temp = Name +": " + 메세지내용;

    ListBox1->Items->Add(temp);

    }


    AnsiString __fastcall TForm1::GetData(AnsiString AllMsg, AnsiString SubMsg) //GetData함수 사용자정의 { int iInitPos = AllMsg.Pos(SubMsg+"=")+(SubMsg+"=").Length(); // (SubMsg+"=") 문자열 뒤의 pos를 저장. int iCommaPos = AllMsg.Pos(","); int iLastPos = AllMsg.Length(); if(iInitPos<iCommaPos){ return AllMsg.SubString(iInitPos, iCommaPos-iInitPos);
    // iInitPos 번째 문자열부터 iCommaPos-iInitPos길이만큼의 문자열을 출력 }else{ return AllMsg.SubString(iInitPos, iLastPos); } }

    // =======IdTCPServer1의 Properties 에서 Intercept를 설정해야 작동.=======
    void __fastcall TForm1::IdServerInterceptLogEvent1LogString(TIdServerInterceptLogEvent *ASender,
      const UnicodeString AText)
    {
    ListBox2->Items->Add(AText);
    }

    출처:http://www.realhanbit.co.kr/books/188/pages/1946/preview



    728x90

    'C++ Builder > Control' 카테고리의 다른 글

    #TDriveComboBox  (0) 2019.01.11
    #TTimer  (0) 2019.01.11
    TComboBox  (0) 2018.12.06
    TPanel  (0) 2018.12.06
    #TRadioGroup  (0) 2018.12.06

    댓글

Designed by Tistory.