TServerSocket和TClientSocket 做NAT转发???? http://www.delphibbs.com/delphibbs/dispq.asp?lid=2978268我在一个form上放置一个TserverSocket和一个TClientSocket控件TServerSocket用来监听程序,而TClientSocket用来将TserverSocket接收的【A】数据发送到别处【B】;同时TServerSocket也将TClientSocket接收的【B】数据发送到数据起始处【A】如下图【A】-------->【[ServerSocket]-->[ClientSocket]】-------->【B】
【A】<--------【[ServerSocket]<--[ClientSocket]】<--------【B】以上目的是做到一个转发的作用,有点象代理。【问题】使用这个进行传输某些程序如:局域网聊天程序时候很正常;但是传输如“远程桌面”或者VNC这样的通信程序时候就经常弄得无法继续(超时),显示是ClientSocket的10054错误;后来我用VB做Socket按照Delphi的语句结构结果试验成功。是不是我语句写的有问题,还是Delphi的处理不好??以下是我得语句---------------------------------procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
Var
CsStr:String;
begin
csstr := ServerSocket1.Socket.Connections[0].ReceiveText;
clientsocket1.Socket.SendText(CSstr);
end;
--------------
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
t_str:string;
begin
t_str:=ClientSocket1.Socket.ReceiveText;
ServerSocket1.Socket.Connections[0].SendText(t_str);
end;
【A】<--------【[ServerSocket]<--[ClientSocket]】<--------【B】以上目的是做到一个转发的作用,有点象代理。【问题】使用这个进行传输某些程序如:局域网聊天程序时候很正常;但是传输如“远程桌面”或者VNC这样的通信程序时候就经常弄得无法继续(超时),显示是ClientSocket的10054错误;后来我用VB做Socket按照Delphi的语句结构结果试验成功。是不是我语句写的有问题,还是Delphi的处理不好??以下是我得语句---------------------------------procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
Var
CsStr:String;
begin
csstr := ServerSocket1.Socket.Connections[0].ReceiveText;
clientsocket1.Socket.SendText(CSstr);
end;
--------------
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
t_str:string;
begin
t_str:=ClientSocket1.Socket.ReceiveText;
ServerSocket1.Socket.Connections[0].SendText(t_str);
end;
解决方案 »
- 这样退出线程正确吗?当我创建了3个线程时,执行完退出线程的代码后,为什么只退出了一个线程,还有两个没有退出?
- 关于XP菜单改良控件
- 关于用adotable,adoquery如何操作数据库?
- 我用Image加载了一幅图,图里有几个不规则的图形,请问如何判断鼠标点击在哪个图形上!?谢谢!
- 请问高手怎样把开始菜单中的 开始 换成别的字符
- 在网页中生成的报表,有2页的内容,如何打印时加入页眉页脚呢?(每页下都有日期)
- 我在dll里面写了鼠标的全局钩子,当截获到了右件信息,我如何有办法,去控制窗体上的memo添加一行信息。
- 如何在程序中写数据库sql server中username、password的输入?
- 请问:Indy控件有没有基于ftp协议的文件断点上传,下载功能啊
- 招兼职delphi程序员
- 新手请教:
- 取出数据库记录中的最大值
用Blocking担心程序挂了
用NotBlocking就立刻挂(80%机会)
学习
两种解决办法:1,降低发送速度;2,增加应答确认。