各位同行高手:
我写了一个服务器用ServerSocket的连接与客户端的ClientSocket通讯,但是过了几个钟就不行了,
要重启动软件才行,到底怎么会事???
是不是连接过程中的错误导致还是连接到了一定程度就不行或挂起来了???
请前辈们指点一下小弟!
小弟在此先谢谢了!!!
我写了一个服务器用ServerSocket的连接与客户端的ClientSocket通讯,但是过了几个钟就不行了,
要重启动软件才行,到底怎么会事???
是不是连接过程中的错误导致还是连接到了一定程度就不行或挂起来了???
请前辈们指点一下小弟!
小弟在此先谢谢了!!!
只是贴ServerSocket的那部分行吗?
Socket: TCustomWinSocket);
var
IpStr:string;
begin
keHuSocket:=Socket; IpStr:=Socket.RemoteAddress ;
Label_keHu.Caption :='客户端服务器 '+IpStr+' 已成功连接';
end;
procedure TForm_Main.SenterServerSocketClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Label_keHu.Caption :='客户端服务器已断开连接';
end;
procedure TForm_Main.SenterServerSocketClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ErrorCode := 0 ;
end;
procedure TForm_Main.SenterServerSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
TempRecvStr:string;
begin
TempRecvStr:= Socket.ReceiveText; //从客户端发送过来的字符串
IDealLbRecvData1(TempRecvStr,Socket); //处理来自客户端的数据
end;
clientSocket就会在连接了一定次数连不上就会出错的!!!
说说现象嘛,是socket连不上了还是程序死掉了。
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
Socket.Close; //加上这句不然有些资源不会释放。
ErrorCode := 0 ;
end;
你可以看看windows的资源管理器,看看你的程序是不是有非常多的句柄数,如果是的话,应该是连接没有断开,或者断开了,但是资源没有释放。
"stack overflow"的错误出来!
------------------------------------
本回复仅代表个人的意见和看法,并不保证其正确性.