使用indy10 TIdUDPClient 通过 SOCKSProxy遇到的有关问题
使用indy10 TIdUDPClient 通过 SOCKSProxy遇到的问题
根据indy 10 的KB我按照以下步骤建立了一个UDP OVER SOCKETPROXY,
1. Create a TIdSocksInfo object and assign it to the TIdUDPClient.TransparentProxy property.
2. Set the TIdSocksInfo properties as required.
3. Call TIdUDPClient.OpenProxy just before you use any receive or send calls.
4. After completing all of your receive and send calls, call TIdUDPClient.CloseProxy.
但是在receive数据的时候出现了问题
Adata的前面都是正确的,但是Adata不管我怎么搞都是一个长度为4096的BYTES
就是说数据发过来了但是没有任何标志数据段结束的地方;所以数据没有办法用
我使用的是CCPROXY做的代理,同样的程序使用SOCKSCAP就可以读出正确的长度,请教如何使用INDY10做出正确的UDP代理?
------解决方案--------------------
不太了解,听说10不稳定,还有就是建议看看demo
------解决方案--------------------
indy不会改变AData长度,它只是把AData作为一段内存,在其中存入数据,数据长度只能通过其它方式获得
根据indy 10 的KB我按照以下步骤建立了一个UDP OVER SOCKETPROXY,
1. Create a TIdSocksInfo object and assign it to the TIdUDPClient.TransparentProxy property.
2. Set the TIdSocksInfo properties as required.
3. Call TIdUDPClient.OpenProxy just before you use any receive or send calls.
4. After completing all of your receive and send calls, call TIdUDPClient.CloseProxy.
但是在receive数据的时候出现了问题
- Delphi(Pascal) code
//button1的代码,这台机器没有DELPHI环境手写的,可能有错误 IdUDPClient1.OpenProxy; IdUDPClient1.SendTo('127.0.0.1',1111,ToBytes('test')); //onrecive的代码 Memo1.Lines.Add(TimeToStr(Time)+':'+BytesToString(AData));
Adata的前面都是正确的,但是Adata不管我怎么搞都是一个长度为4096的BYTES
就是说数据发过来了但是没有任何标志数据段结束的地方;所以数据没有办法用
我使用的是CCPROXY做的代理,同样的程序使用SOCKSCAP就可以读出正确的长度,请教如何使用INDY10做出正确的UDP代理?
------解决方案--------------------
不太了解,听说10不稳定,还有就是建议看看demo
------解决方案--------------------
indy不会改变AData长度,它只是把AData作为一段内存,在其中存入数据,数据长度只能通过其它方式获得