首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在DataSnap XE /重新编译DataSnap框架中访问公共IP地址

在DataSnap XE /重新编译DataSnap框架中访问公共IP地址
EN

Stack Overflow用户
提问于 2011-06-30 08:19:35
回答 1查看 755关注 0票数 2

DSTCPServerTransport.pas中的"procedure TDSTCPChannel.Open“方法在分配"FChannelInfo”时使用连接用户的私有IP地址。当我跟踪HTTP传输时,它使用了用户的公网IP。如果将DSTCPServerTransport.pas更新为

代码语言:javascript
复制
FChannelInfo := TDBXSocketChannelInfo.Create(Integer(FContext.Connection), FContext.Connection.Socket.Binding.IP);

已更改为

代码语言:javascript
复制
FChannelInfo := TDBXSocketChannelInfo.Create(Integer(FContext.Connection), FContext.Connection.Socket.Binding.PeerIP);

然后,DSTCPServerTransport.pas将匹配HTTP传输实现,并且连接的用户的公共IP地址也将通过用于TCP连接的"DSConnectEventObject.ChannelInfo.Info“在TDSServer.OnConnect事件中可用。几个开发人员在这两个EBT讨论中讨论了这一点:Discussion #1Discussion #2。这里的QC#是#91030。

我试图自己进行更改,但了解到我不能重新编译DataSnap框架(see here)。

这会在XE2中修复吗?或者最终用户能够在XE2中重新编译DataSnap框架吗?在XE2之前,是否会有包含此修复的DataSnap补丁?

谢谢,詹姆斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-27 06:13:43

我昨天给Embarcadero打了电话,他们确认已经修复了这个问题,并将在下一个通用版本(例如XE2)中提供。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6528739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档