我用的是Delphi自带的tserversocket/tclientsocket
当前有几个连接,我已把连接保存在数组中了,请问,如何向多个客户连接发送同一个内存数据流?
第一次发送时正确,但是当第二次发送时,就会报错,不知道什么原因,如果只发送一次,在释放内存流时也会报错,郁闷了,,代码如下 :
critical.Enter;
for k:=0 to maxc-1 do
begin
cons[k].SendStream(tms);//当发送到第二个时会出错
end;
critical.leave;
tms.free;//如果只发送一次,这里会出错。。
当前有几个连接,我已把连接保存在数组中了,请问,如何向多个客户连接发送同一个内存数据流?
第一次发送时正确,但是当第二次发送时,就会报错,不知道什么原因,如果只发送一次,在释放内存流时也会报错,郁闷了,,代码如下 :
critical.Enter;
for k:=0 to maxc-1 do
begin
cons[k].SendStream(tms);//当发送到第二个时会出错
end;
critical.leave;
tms.free;//如果只发送一次,这里会出错。。
当前面那一个SendStream,还没有发送完,就去释放,就有可能会引起出错
cons[k].SendStream(tmp_tms);但这也不是根本解决,而且还多用了一份内存空间;根本解决办法,应该是等一个SendStream操作完成之后,再都进行下一步操作。
但这样,是不是又会对效率上不满意,呵呵楼主要好好考虑一下