关于clientsocket的问题,求救!贴出了源程序。(再加100分!) (50分)

  • 主题发起人 主题发起人 genue
  • 开始时间 开始时间
G

genue

Unregistered / Unconfirmed
GUEST, unregistred user!
为何下面的程序会一直吃掉我的内存?????

//====================================================
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, ExtCtrls, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Timer1: TTimer;
ClientSocket1: TClientSocket;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
ErrorEvent: TErrorEvent; var ErrorCode: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.Enabled := not timer1.Enabled ;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if not ClientSocket1.Active then
ClientSocket1.Active:=true;
end;

procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
errorcode:=0;
end;

end.
 
运行找不到主机时会隔几秒钟内存以4K速度消耗!!!!!!!!!!!
我的环境:delphi6+win2000
 
干嘛用时钟控制 呢????
 
那有何关系呢?
 
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
if errorcode=10061 then
ClientSocket.active;=false;
end;
还有,要把TTIMER的间隔时间调到2分钟
 
为什么要调到2分钟了?
 
to 张无忌:
why?
 
在Onconnected事件里:
Timer1.Enabled := false;
 
诶,正好问问100061是什么出错!
异步出错怎么解决?指点。
 
10061是连接失败的错误!
所以在连接失败以后要关闭这个TClientSocket!否则资源没有释放,最后系统要出错!
 
呵呵,开始明白了!
意思是根本没有跟serversocket 连接上?但是我弄的client和server开始应该是连通了的。
有反应的吧!只是在发送文字的时候才显示异步出错!这个该怎么解决,麻烦大侠弄段源码
瞧瞧,学习学习!多谢!
 
demo->internet->chat
 
问题仍未解决!
 
所以在连接失败以后要关闭这个TClientSocket!否则资源没有释放,最后系统要出错![red][/red]
 
张无忌:你说的方法是不能解决问题的,那不是原因所在,我查了很多资料,这是它的BUG,
DELPHI原来提供的SERVERSOCKET的CLIENTSOCKET都存在很多BUG,所以DELPHI7中就去掉了,
只提供了INDY的控件。
TO ALL : 见者有分。
 
多人接受答案了。
 
后退
顶部