如何在 c++ 中使用 IdThreadComponent建设者

发布于 2024-11-01 09:33:59 字数 75 浏览 2 评论 0原文

如何在 C++ 构建器中将 IdThreadComponent 与 TIdyTCPServer 一起使用???

请帮忙!

How to use IdThreadComponent with TIdyTCPServer in c++ builder????

Please help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

德意的啸 2024-11-08 09:33:59

TIdTCPServer 在内部为您提供多线程。您不需要直接使用 TIdThreadTIdThreadComponent

TIdTCPServer is multi-threaded internally for you. You don't need to use TIdThread or TIdThreadComponent directly.

我最亲爱的 2024-11-08 09:33:59

您可以直接访问处理方法的上下文

void __fastcall TCPServer::OnDisconnect(TIdContext *AContext){
    AContext->Binding()->PeerIP //Returns IP Of the just connected client
        AContext->Binding()->PeerPort;

}

可以在执行事件上读取消息

AContext->Connection->Socket->ReadBytes(buf, 4, false);

此外,在程序的任何位置,您都可以像这样访问上下文:

TList *list = IdTCPServer1->Contexts->LockList();
         for(int i=0; i<IdTCPServer1->Contexts->LockList()->Count; i++){
            TIdContext *AContext = (TIdContext*)(list->Items[i]);
            if(AContext ->Binding()->PeerIP ==  clientIP){  // say you want to reach the context of a specified IP
                //Do something
            }
         }
        IdTCPServer1->Contexts->UnlockList();

You can reach context on handling methods directly

void __fastcall TCPServer::OnDisconnect(TIdContext *AContext){
    AContext->Binding()->PeerIP //Returns IP Of the just connected client
        AContext->Binding()->PeerPort;

}

Messages can be read onExecute event

AContext->Connection->Socket->ReadBytes(buf, 4, false);

Also in anywhere of your program, you can reach the context like that:

TList *list = IdTCPServer1->Contexts->LockList();
         for(int i=0; i<IdTCPServer1->Contexts->LockList()->Count; i++){
            TIdContext *AContext = (TIdContext*)(list->Items[i]);
            if(AContext ->Binding()->PeerIP ==  clientIP){  // say you want to reach the context of a specified IP
                //Do something
            }
         }
        IdTCPServer1->Contexts->UnlockList();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文