求支持HTTP代理用户访问的程序写法,感谢!

b634294 b634294 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
有如下一个程序,分为客户端和服务器端,客户端使用的是 client1: TIdTCPClient控件
客户端与服务器端交互的是如下一个结构体来传递信息,
RCommDataBlock:是定义的一个结构体:
PRCommDataBlock = ^RCommDataBlock;
RCommDataBlock = Record
Cmdtype : Integer;
cBuffer : Array[0..1024] of char;
dwBufSize : DWord;
cPar1: Array[0..19] of char;
end;
---------
客户端所有访问服务器的命令都是通过 RequestSv 函数来与服务器交换,获取返回值.
client1.host:=trim(ipstr); --服务器IP
client1.Port:=StrToInt(trim(portstr)); --我们指定的端口号
EType=Array[0..1024] of char;

function RequestSv(var cmdtype:integer;var buffer1:EType; var p1:string;var rsize:DWord):RCommDataBlock;
var
msg:RCommDataBlock;
begin
fillchar(msg,sizeof(msg),0);
msg.Cmdtype := cmdtype;
EType(msg.cBuffer):=buffer1;
LStrCpy(msg.cPar1,PChar(trim(p1)));
msg.dwBufSize:=rsize;

client1.WriteBuffer(msg,sizeof(msg)); //提交
fillchar(msg,sizeof(msg),0);
client1.ReadBuffer(msg,sizeof(msg)); //反馈

result:=msg;

end;
-----------
客户端通过这一函数向服务器发出信息并获取返回信息RCommDataBlock,在客户端程序里解析。

现在的问题是如果客户是通过HTTP代理服务器上网的,就无法通过我们指定的端口号来直接访问我们的服务器,
要把如上程序改成支持客户输入代理服务器的IP和端口验证名和密码,支持通过代理来访问我们服务器。这程序该怎么改呢?求详细点的程序,最好在以上程序上修改。
...全文
评论 24
收藏 已收藏
分享
返回顶部