首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

Socket和线程有关问题

2012-03-31 
Socket和线程问题我用BCB新建一个控制台应用程序在程序起来得时候,我new了一个监听线程,用来监听客户端得s

Socket和线程问题
我用BCB新建一个控制台应用程序
在程序起来得时候,我new了一个监听线程,用来监听客户端得soctet连接,一但有socket连接,就在该监听线程里new一个处理线程.
我的问题是:在这个监听线程中,我怎么样监听soctet连接?
void   __fastcall   TListenThread::Execute()
{
        SetName();
        sock   =   new   TServerSocket(Application);
        sock-> Port   =   m_Port;
        sock-> Active   =   true;

        while   (!Termiate)
        {

        }
}
//---------------------------------------
void   __fastcall   TListenThread::ServerSocket1ClientRead(TObject   *Sender,
            TCustomWinSocket   *Socket)
{

}
这是我在监听线程中的部分代码,肯定是有问题的.OnClientRead事件没办法相应的,各位大哥帮帮我怎么解决?


[解决办法]
?不明白你为什么这样用!
你在主窗体上放一个这样的控件,然后处理相应的事件即可。如果每一个连接都用一个线程处理的话,你只要把ServerType设成stThreadBlocking即可,然后响应处理OnGetThread事件,事件代码如下:
SocketThread = new XServerSocketThread(true,ClientSocket);
SocketThread-> KeepInCache = true;
SocketThread-> FreeOnTerminate = true;
SocketThread-> Resume();
其中类的定义如下,一定要从TServerClientThread派生
class XServerSocketThread:public TServerClientThread

热点排行