【发布时间】:2013-04-15 09:28:32
【问题描述】:
我正在使用 Embarcadero RAD studio C++ builder XE 创建一个 C++ 应用程序。该应用程序在阻塞模式下使用动态创建的TServerSocket 组件。我创建了一个派生自TServerClientThread 的类,它提供了一个自定义的ClientExecute() 方法。这个类是通过我已经实现的TServerSocket 事件处理程序OnGetThread 创建的。我为OnAccept、OnClientConnect、OnClientDisconnect 和OnClientError 分配事件处理程序。在我的线程类中,我使用TWinSocketStream 类从套接字连接读取和写入。
我使用创建TServerSocket 的自定义编写类(派生自TComponent),我分配的事件处理程序是此类的成员函数。
我的OnAccept 和OnClientDisconnect 事件触发,但OnClientConnect 和OnClientError 事件都没有触发。这是该组件的正常行为吗?我所读到的关于这个组件的所有内容都表明所有事件都将在阻塞模式下为TServerSocket 触发,我根本无法理解为什么这些事件不会触发。我还需要做些什么,或者这些事件在阻塞模式下不起作用?使用TServerSocket 实例作为另一个TComponent 派生类的成员是否可能会导致一些问题?
【问题讨论】:
标签: c++ sockets c++builder c++builder-xe