TSocketConnection进行数据块的交换(100分)

  • 主题发起人 主题发起人 Efeis
  • 开始时间 开始时间
E

Efeis

Unregistered / Unconfirmed
GUEST, unregistred user!
通过TSocketConnection开发三层结构软件,程序中,有必要在客/服间进行一些非数据库的数据包交换,我应该怎么做呢,找变遍了都没有这方面的例子,大虾们帮帮我吧
 
作服务器的时候可以多定义一些方法(在Type Library中)。这些方法可以接受或返回OleVariant。在调用的时候只要var0 := SocketConnection1.AppServer.MyMethod(var1);就可以了。
 
帮顶!
╭=========================================╮
80G海量源代码,控件,书籍全免费狂下不停!
http://www.source520.com

╰=========================================╯
 
谢谢硕鼠,我也知道这个道理,但现在我就是不知怎样用这个OleVariant,能不能给个简单的例子?
 
OleVariant是一种非常好用的东西。
可以直接向它负值(各种简单数据类型)。
可以存放数组(VarArrayCreate)。
另外附送一段简单的小程序:
procedure TForm1.VariantToStream (const v : olevariant;
Stream : TMemoryStream);
var
p : pointer;
begin

Stream.Position := 0;
Stream.Size := VarArrayHighBound (v, 1) - VarArrayLowBound (v, 1) + 1;
p := VarArrayLock (v);
Stream.Write (p^, Stream.Size);
VarArrayUnlock (v);
Stream.Position := 0;
end;

procedure TForm1.StreamToVariant (Stream : TMemoryStream;
var v : OleVariant);
var
p : pointer;
begin

v := VarArrayCreate ([0, Stream.Size - 1], varByte);
p := VarArrayLock (v);
Stream.Position := 0;
Stream.Read (p^, Stream.Size);
VarArrayUnlock (v);
end;
 
解决了,谢谢
 
后退
顶部