ServerSocket 多线程方式, ClientExecute()函数里面的代码不能触发

bahic 2010-06-26 09:53:19
最近学习ServerSocket的 stThreadBlocking方式编程
也看了网上的一些代码,感觉主要流程都差不多,我也试着写了一个最基本的。
但居然不知道怎么读写数据!
我的源码大致以下:
class TForm1 : public TForm
{
__published: // IDE-managed Components
TServerSocket *ServerSocket1;
TButton *Button1;
void __fastcall Button1Click(TObject *Sender);
void __fastcall ServerSocket1GetThread(TObject *Sender, TServerClientWinSocket *ClientSocket,
TServerClientThread *&SocketThread);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};

class SrvThread : public TServerClientThread //自定义线程类
{
private:
UINT FTimeOut;
TWinSocketStream* WskStream;
TThread *pThread;
protected:
void __fastcall ClientExecute(void); //重载TServerClientThread的ClientExecute 而不是TThread的Execute
public:
__fastcall SrvThread(bool CreateSuspended,TServerClientWinSocket* ASocket):TServerClientThread(CreateSuspended,ASocket)
{
CreateSuspended = false; KeepInCache=true; FreeOnTerminate=false;
}
__property UINT TimeOut = {read=FTimeOut, write=FTimeOut};
};
//上面是.H文件
//------------------------------------------------------------------------------------------


CPP文件以下:

void __fastcall TForm1::ServerSocket1GetThread(TObject *Sender, TServerClientWinSocket *ClientSocket,TServerClientThread *&SocketThread)
{
SocketThread = new SrvThread(true,ClientSocket); //在此设断点,每次客户端一连接,都能断下来。
}
//---------------------------------------------------------------------------
void __fastcall SrvThread::ClientExecute()
{
ShowMessage(L"dasfadsfasdf"); //在此设断点,从来没断下来过。
}

/*
我的编程环境:BDS2009
现在我的问题是: 我看网上许多文章都说连接上后,只要客户端发送数据,都会触发此函数。但为什么我从来没断下
来过?
ServerType=stThreadBlocking 这个我设置正确了的。

原来用stNonBlocking方式,写的几个小程序都能正常运行,但stThreadBlocking这种方式不是很清楚,也没找到相关源码,
哪位老大如果有这方面的源代码,希望能发给我看看,不要贴代码,我想要源码,这样我才能跟踪分析一下。谢谢了。
邮箱: bahic@163.com
*/

...全文
191 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bahic 2010-06-28
  • 打赏
  • 举报
回复
结贴吧.网上找了一个源码.跟踪一下.清楚了.
周药师 2010-06-27
  • 打赏
  • 举报
回复
没有试过;
C++Builder自从2007开始就准备淘汰了,默认的面板都没有了;
stThreadBlocking是阻塞方式,本来也是不推荐的;
zhgwbzhd 2010-06-27
  • 打赏
  • 举报
回复
INDY很不错啊。
bahic 2010-06-27
  • 打赏
  • 举报
回复
没事顶一下
bahic 2010-06-27
  • 打赏
  • 举报
回复
嗯,我一直用CB, VS2008也在使用。两者的优点和缺点都很明显。
内容概要:本文档围绕基于MATLAB/Simulink平台的直流无刷电机速度控制系统展开,重点介绍利用Simulink搭建电机控制模型,实现直流无刷电机的速度开环控制仿真。文档详细阐述了系统建模、关键模块设计与参数配置过程,帮助读者深入理解电机控制的基本原理与仿真流程。同时,文档还列举了涵盖电力电子、新能源系统、路径规划、智能优化算法等多个领域的丰富仿真案例,充分展示了MATLAB/Simulink在多学科交叉科研仿真中的强大功能与广泛应用前景。; 适合人群:具备一定自动控制理论基础和MATLAB/Simulink使用经验的高校学生、科研人员及工程技术人员,特别适用于从事电机控制、电力电子、新能源系统、智能优化等方向的研究者。; 使用场景及目标:①学习直流无刷电机的工作原理及其速度开环控制方法;②掌握使用Simulink进行电机控制系统建模与仿真的核心技能;③为后续开展更高级的闭环控制、矢量控制或结合智能优化算法的电机控制研究奠定坚实的技术基础并提供实用的参考实例。; 阅读建议:建议读者结合文档提供的仿真模型与代码资源,亲自动手实践Simulink建模全过程,逐步理解各功能模块的作用与参数整定方法,并充分利用网盘中的配套资料进行复现与深入学习,从而有效提升科研仿真与工程实践能力。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧