社区
C++ Builder
帖子详情
TServerSocket中ServerType设为线程阻断型后的问题?
netware
2000-08-31 12:49:00
加精
TServerSocket中ServerType设为线程阻断型后,则接受的每一个客户连接的读、写信息都在一个单独的线程中进行,但是我不知道如何让程序调用我写的线程,并且如何在线程中读写TClientSocket发来的数据,(如设为非阻断型可在OnClientRead中读数据)
...全文
156
2
打赏
收藏
TServerSocket中ServerType设为线程阻断型后的问题?
TServerSocket中ServerType设为线程阻断型后,则接受的每一个客户连接的读、写信息都在一个单独的线程中进行,但是我不知道如何让程序调用我写的线程,并且如何在线程中读写TClientSocket发来的数据,(如设为非阻断型可在OnClientRead中读数据)
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
keikai
2001-07-28
打赏
举报
回复
呵呵,你把那个参数CreateSuspended设置为true就可以了。
当然也可以用另外的办法,你在你的线程里面另外写一个函数
runThread(){
this->ClientExecute();
}
FengSC
2000-08-31
打赏
举报
回复
建立
class TMyThread : public TServerClientThread
{
private: // User declarations
void __fastcall ClientExecute();
public: // User declarations
__fastcall TCommandThread (bool CreateSuspended,
TServerClientWinSocket* ASocket);
}
//---------------------------------------------------------------------------
__fastcall TCommandThread::TCommandThread (bool CreateSuspended,
TServerClientWinSocket* ASocket)
: TServerClientThread( CreateSuspended, ASocket)
{
}
//---------------------------------------------------------------------------
void __fastcall TMyThread::ClientExecute()
{
TWinSocketStream *pStream;
if (Terminated || !ClientSocket->Connected) return;
pStream = new TWinSocketStream(ClientSocket, 6000);
memset(Buffer, 0x00, sizeof(Buffer));
if (pStream->WaitForData(10000))
{
memset(Buffer, 0x00, sizeof(Buffer));
DataLength=pStream->Read(Buffer, 45);
if (DataLength == 0)
{
ClientSocket->Close();
delete (pStream);
return ;
}
}
else
{
ClientSocket->Close();
delete (pStream);
return ;
}
:
:
:
ClientSocket->Close();
delete (pStream);
return;
}
在TServerSocket的OnGetThread 中创建新的线程.
void __fastcall TformMain::MySocketGetThread(TObject *Sender,
TServerClientWinSocket *ClientSocket,
TServerClientThread *&SocketThread)
{
SocketThread = new TMyThread(false, ClientSocket);
}
Delphi之T
ServerSocket
和TClientSocket多
线程
传输
总的来说,Delphi的T
ServerSocket
和TClientSocket组件为开发多
线程
网络应用提供了便利。通过合理地创建和管理
线程
,我们可以构建出能够同时处理多个客户端连接的服务器,以及能与不同服务器通信的客户端,从而实现...
使用多
线程
的T
ServerSocket
演示
在这个例子
中
,`server.dpr`可能会包含创建并启动T
ServerSocket
实例的代码,设置其监听的端口号,以及设置多
线程
模式,确保每个客户端连接都能在自己的
线程
中
独立处理,避免阻塞其他连接。 最后,`main.pas`文件是...
t
serversocket
多
线程
实例
在IT行业
中
,网络通信是软件...总之,`T
ServerSocket
` 多
线程
实例是网络编程
中
的一个重要话题,它涉及到并发控制、
线程
管理以及网络通信等多个方面的知识。正确地运用这些技术,可以使你的服务器程序更加健壮和高效。
Delphi T
ServerSocket
和TClientSocket两个组件的基本用法
- **
ServerT
ype
**: 指定服务器类
型
为 `stNonBlocking`(非阻塞模式)。 - **ThreadCacheSize**: 设置缓存
线程
数量,默认为 10,用于处理客户端连接。 - **TClientSocket 配置**: - **Port**: 连接端口号,默认...
解决python
线程
卡死的
问题
### 解决Python
线程
卡死的
问题
在进行Python开发的过程
中
,可能会遇到程序突然无响应的情况,这往往是由
线程
卡死引起的。
线程
卡死不仅会导致程序无法继续执行,还可能引发一系列连锁反应,比如资源泄露、服务
中
断等...
C++ Builder
13,873
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章