我的客户端代码如下:
客有一个多线程程序用于接收从服务器发送过来的信息:
procedure TReceiveThread.Execute;
begin
while not terminated do
DoExecute(Fmain.Client1);
end;procedure TReceiveThread.DoExecute(Icon: TIDTcpClient);
begin
Icon.ReadBuffer(RHead,sizeof(Rhead));//发送一个头部
case Rhead.Cmid of
Cmid_onlineuserCount: GetonLineuserCount(ICON);//接收其它信息
cmid_SS:SS(icon);
CMID_DDD:DDD(icon);
..... 这些都能正常接收
Cmid_Discon: DisConn;
end;
end;procedure TReceiveThread.DisConn;//断开连接
begin
While Fmain.Client1.Connected do
begin
Fmain.GReceiveThread.Terminate;
Fmain.Client1.Disconnect;
end;
end;procedure TFMain.Button1Click(Sender: TObject);
begin
try
sendHead(Fmain.Client1,Cmid_Discon);//发送请求断开信息
except
end;
end;
服务器端:procedure TForm1.Server1Execute(AThread: TIdPeerThread);
var Lhead: Khead;
begin
with AThread do begin
Athread.Connection.ReadBuffer(lhead,Sizeof(lhead));
Case lhead.Cmid of
Cmid_login:Login(AThread);
Cmid_onlineuserCount: GetonLineuserCount(AThread);
Cmid_discon: begin
sendhead(Athread,Cmid_Discon);
Athread.Terminate;//每次到这儿都出异常
//Athread.connection.disconect;//出现同样的异常,弄了好久郁决了,请高手帮忙
end;
end;
end;
end;地址异常错误,只有断开的时候才出来现这样的错误,其它数据接收发送完全正常
客有一个多线程程序用于接收从服务器发送过来的信息:
procedure TReceiveThread.Execute;
begin
while not terminated do
DoExecute(Fmain.Client1);
end;procedure TReceiveThread.DoExecute(Icon: TIDTcpClient);
begin
Icon.ReadBuffer(RHead,sizeof(Rhead));//发送一个头部
case Rhead.Cmid of
Cmid_onlineuserCount: GetonLineuserCount(ICON);//接收其它信息
cmid_SS:SS(icon);
CMID_DDD:DDD(icon);
..... 这些都能正常接收
Cmid_Discon: DisConn;
end;
end;procedure TReceiveThread.DisConn;//断开连接
begin
While Fmain.Client1.Connected do
begin
Fmain.GReceiveThread.Terminate;
Fmain.Client1.Disconnect;
end;
end;procedure TFMain.Button1Click(Sender: TObject);
begin
try
sendHead(Fmain.Client1,Cmid_Discon);//发送请求断开信息
except
end;
end;
服务器端:procedure TForm1.Server1Execute(AThread: TIdPeerThread);
var Lhead: Khead;
begin
with AThread do begin
Athread.Connection.ReadBuffer(lhead,Sizeof(lhead));
Case lhead.Cmid of
Cmid_login:Login(AThread);
Cmid_onlineuserCount: GetonLineuserCount(AThread);
Cmid_discon: begin
sendhead(Athread,Cmid_Discon);
Athread.Terminate;//每次到这儿都出异常
//Athread.connection.disconect;//出现同样的异常,弄了好久郁决了,请高手帮忙
end;
end;
end;
end;地址异常错误,只有断开的时候才出来现这样的错误,其它数据接收发送完全正常
解决方案 »
- 覆盖NewWindow2未遂
- 请问大侠:界面用DEPHI编写,后台访问数据库用C++写,两者不同的语言对接的时候该怎么办啊,谢谢!!
- 如何查詢某個部門的所有員工?一個廠分成多個部門,部門下又有子部門,子部門下又用下級子部門..........
- 怎样用delphi7写一个播放器在WEB上播放?
- 哪位高手开发过模拟器WinKawaks1.45飞雪外挂,如何得到玩家过关的级别信息?
- 对图像进行标注问题
- 怎样把BMP数据快速地显示出来?
- 动态连接库内存问题
- delphi中如何禁用ctrl+shift 或锁住其中一个键?
- 问一个问题:当鼠标移动到speedbutton上时,怎样让汉字具有立体效果?
- 关于SPComm组件的小问题
- 高分求解:用DELPHI开发了一个ASP组件,一个用户调用时没有问题,可两个以上用户调用时,就会出现一种访问冲突,IIS锁死机的现象,为什么?!
case Rhead.Cmid of