关于Indy10,二进制数据的发送和接收的问题~! ( 积分: 150 )

  • 主题发起人 主题发起人 lingxing_0
  • 开始时间 开始时间
L

lingxing_0

Unregistered / Unconfirmed
GUEST, unregistred user!
关于Indy10,[red]二进制[/red]数据的发送和接收
如有例子可直接发到:guizhong66@yahoo.com.cn

1.为什么客户端只显示发送过去的数据,而没有接收的数据??
2.为什么会形成死锁的现象,什么原因造成的,有什么办法解决吗?
Client:
1. SendData: if sock.Connected then
begin
sock.IOHandler.ReadBytes(rxbuf,Count,False);
Move(rxbuf[0],buf,Length(rxbuf));
end;
2. ReciveData: if not sock.Connected then exit ;
SetLength(txbuf,Count);
Move(buf,txbuf[0],Count);
sock.IOHandler.Write(txbuf);

Server:onexecute:
AContext.Connection.IOHandler.ReadBytes(txbuf,0,True);
Hinst:=LoadLibrary('abc.dll');
if Hinst>0 then
try
FPointer:=GetProcAddress(Hinst,'start');
if FPointer<>nil then begin
MyFunc:=TMyAbout(FPointer);
MyFunc(PChar(EditLicense.Text),PChar(EditAppName.Text));
end
else Memo1.Lines.Add('>>未找到相应的函数!');
finally
FreeLibrary(Hinst);
end
else Memo1.Lines.Add('>>DLL未加载成功!');
AContext.Connection.IOHandler.Write(txbuf);

--下面是我从服务器端取回数据的记录:

客户端启动Connected at 2007-12-10 17:01:55
服务器回应-->Test Program
(SendPacket) <--55 55 55 55 AA AA AA AA 01 00 00 00 01 00 00 00 2C 00 00 00 11111111 Test_Program

这段数据记录并没有从服务器端完整的取回,正常情况下还应该取回,如(RecivePacket)-->...的数据,但现在的情况是,后面的(R..)...记录没有

1.为什么客户端只显示发送过去的数据,而没有接收的数据??
2.为什么会形成客户端死锁的现象,什么原因造成的,有什么办法解决吗?
 
怎么没人回啊~!请大虾帮忙解决一下啊`
 
后退
顶部