问题描述
项目功能描述:给单位内部开发一个CS构架的管理工具(有点类似QQ),因为内部网络环境比较复杂,直连互联网的电脑无问题,但有部分电脑是通过公司OA网络(OA网络是通过一台固定IP的代理服务器与外网链接)因此这部分电脑的客户端只能通过设置代理服务器与架设在公网上的服务端交互(安装在我们OA网络的所有通讯工具也都需要在各自软件中设置代理服务器的IP,端口才能正常使用);问题:如何让自己设计的这款软件也能象QQ一样可以通过设置代理服务器实现与OA网络互通?请大神帮忙解决!主要实现代码privateTcpClientclient;privateBinaryReaderbr;privateBinaryWriterbw;..........try{//此处为方便演示,实际使用时要将Dns.GetHostName()改为服务器域名//IPAddressipAd=IPAddress.Parse("182.150.193.7");client=newTcpClient();client.Connect(IPAddress.Parse(ServerIP),port);AddTalkMessage("连接成功");}catch(Exceptionex){AddTalkMessage("连接失败,原因:"+ex.Message);btn_Login.Enabled=true;return;}//获取网络流NetworkStreamnetworkStream=client.GetStream();//将网络流作为二进制读写对象br=newBinaryReader(networkStream);bw=newBinaryWriter(networkStream);SendMessage("Login,"+txt_UserName.Text);ThreadthreadReceive=newThread(newThreadStart(ReceiveData));//ReceiveData处理服务器信息方法过程threadReceive.IsBackground=true;threadReceive.Start();
解决方案
本帖最后由 hehaiyi2008 于 2014-10-14 11:02:15 编辑
解决方案二:
解决方案三:
走HTTP协议,代理很好做(代理服务器也多)。TCP代理则比较棘手,你可以试试RFC1928(Sock5规范)。
解决方案四:
引用1楼gxingmin的回复:我无法这单位的代理服务器上安装文章中提到的代理服务程序端,我是想实现类似QQ的实现方式.......在QQ中,我们只需要设置一下代理服务器的IP和端口就可以正常登陆QQ了。
解决方案五:
最好的情况,是告诉你的用户“别上前一个开发商的当,别为了OA而因噎废食”。