ServerSocket问题

panjinfu80 2009-07-13 04:14:28
ServerSocket的serverType使用stThreadBlocking,为什么只要有客户端连接到服务端来,CPU占100%。不启用线程也是同样问题,请问大家,这种情况如何处理?
procedure TfrmMain.SocketWatcherGetThread(Sender: TObject;
ClientSocket: TServerClientWinSocket;
var SocketThread: TServerClientThread);
var
HostThread: TSendServerThread;
strThdl: string;
StrSrkHdl:string;
begin
StrSrkHdl := inttoHex(ClientSocket.Handle, 8);
MMDetail.Lines.add(DateTimeToStr(Now)+' ->客户端--SOCKET句柄号: ' + strSrkHdl +'--IP及端口号: '+ClientSocket.RemoteAddress+':'+inttoStr(ClientSocket.RemotePort)+ '已连接..');
Inc(Connct);
MMDetail.Lines.add('建立连接数:'+IntToStr(Connct));
closesocket(ClientSocket.Handle);
try
{gTraceLock.Enter;
HostThread := TSendServerThread.Create(true, ClientSocket,SOCKETMODE_BSM,1);
MMDetail.Lines.add(DateTimeToStr(Now) + '创建服务线程, 句柄: ' + strThdl + ' ' +
'成功..');
gTraceLock.Leave;
HostThread.FreeOnTerminate := True;
HostThread.m_MonFlag := chbShow.Checked;
HostThread.m_MainHwnd := Handle;
HostThread.Resume; }
Inc(LiveTH);
//ShowMonitorInfo(ClientSocket.RemoteAddress+'连接');
except
MMDetail.Lines.add('创建服务线程, 失败..');
end;
end;
...全文
81 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjp1234airen4385 2009-07-14
  • 打赏
  • 举报
回复
我来接个分
sindel 2009-07-14
  • 打赏
  • 举报
回复
jf
请LZ自问自答好吗,都是学习
panjinfu80 2009-07-14
  • 打赏
  • 举报
回复
解决了,拿分去吧

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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