我现在简易的功能都要做成一个类来.做成类来实现,的确是思路清淅,灵活,容易扩展维护只是编码麻烦点的.
比如:利用Indy发送各种数据包时,每种数据包格式意义都不相同,每种我都给它定义一个类.这各种类间有共同之类,也有不同之处.共同之处就定义成基类,不同之处就在子类中实现.基类中都要实现Data指针与Size(即指针所指数据缓冲区的大小)和从Stream恢复数据的方法.子类则根据自身的任务,定义数据的读取方法.比如要登录的类,可以定义方法:InitInfo(const UserName,Password:string);TakeInfo(var UserName,Password:string);
当要发送数据时,IdUdpServer.SendBuffer(IP,Port,Data,Size);//这里,Data,Size,就可以用到基类的Data,Size,这样就把一个对象的数据发送给指点IP和Port的远程接收端.
当要接收数据时,在IdUdpServer的OnReadUdp事件中,可以从AData中恢复这个对象.
这样就实际了对象(或者说对象所载的数据)在计算机间传送的目的.