[英]Where can I find a fully working example of a TCP Client and Server for Indy in C++Builder?
我想创建一个应用程序作为“中间人”来分析通过 TCP/IP 发送的协议 (ISO 8583)。
一些上下文:主要思想是获取原始二进制数据并将其转换为用于解析和解码协议的字符串。
该项目分为两部分:
我在第一部分花费了太多时间。 所以,如果有一个模型可以让我开始,那就太好了。 它不必与 Indy 一起使用,但我更喜欢 C++Builder。
这是我第一次使用 Indy,虽然我有使用 TCP/IP 的经验,但我总是将它当作已经存在的东西来使用,而不是在低级实现中使用。
我正在测试Hercules ,到目前为止我可以看到连接。
当我连接到 Hercules 中的服务器时,我可以看到我的应用程序正在连接。 但是,当我的应用程序断开连接时,我没有看到这样的消息,这意味着(我认为)我的应用程序没有正确断开连接(但我可以根据需要重新连接多次)。
我正在使用 Hercules(“Hello”字符串)向我的应用程序发送数据。 它显然有效,但我很难获得实际数据。
文档有时会让我进入死链接,没有示例或者它们可以在 Delphi 上找到。
我正在处理以下内容:
Windows 11 家
Embarcadero® C++Builder 10.4 版本 27.0.40680.4203
Delphi 和 C++ Builder 10.4 更新 2
印地 10.6.2.0
看看 Indy 的TIdMappedPortTCP
组件。 它是一个 TCP 服务器,充当客户端和指定服务器之间的 MITM 代理,在任何一方发送原始数据时为您提供事件。
使用Bindings
集合或DefaultPort
属性指定您希望服务器侦听客户端的本地 IP/端口。
使用MappedHost
和MappedPort
属性指定您希望TIdMappedPortTCP
连接到的远程服务器。
当客户端连接到TIdMappePortTCP
时,将触发OnBeforeConnect
事件。
OnConnect
事件在TIdMappedPortTCP
尝试连接到远程服务器之前触发。
当TIdMappedPortTCP
连接到远程服务器时,将触发OnOutboundClientConnect
事件。
当客户端向TIdMappedPortTCP
发送字节时,以及在将字节发送到远程服务器之前,会触发OnExecute
事件。 如果需要,事件可以改变字节。
OnOutboundData
事件在远程服务器发送字节到TIdMappedPortTCP
时被触发,在字节被发送到客户端之前。 如果需要,事件可以改变字节。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.