数据转发的用处不必说,即时通讯,语音,视频传输都要用到。 本转发器基于Tserversocket服务器组件,通俗易懂,功能强大,无延迟。 数据转发原理: 1、需求:数据希望从A客户端经服务器转发给B客户端; 2、 服务器上有两个socket,分别对应AB两个客户端连接; 3、一个socket接收A客户端数据(称为接收端socket); 4、另一个socket发送数据给B客户端(称为发送端socket);
const
MAX_BUF_SIZE=8192; 数据缓冲区大小
PRepeatDataBuffer=^stRepeatDataBuffer; //转发数据缓冲区
stRepeatDataBuffer=record
oh:stOrderHeader; //数据头
targetSocket:TCustomWinSocket; //目标端(发送端)
buf:array[0..MAX_BUF_SIZE-1] of byte; //数据缓冲区
end;
{
两个socket之间的数据转发
inSocket: TCustomWinSocket //接收数据端;
outSocket: TCustomWinSocket //发送数据端;
}
function TDM.repeatData(inSocket,outSocket: TCustomWinSocket):boolean;
var
buf:array of byte;
dataLen,recvLen,recved,sended,sendLen,errCount:integer;
begin
result:=false;
dataL
|