【问题标题】:indy Tcp Connectionindy Tcp 连接
【发布时间】:2014-09-18 07:21:50
【问题描述】:

我正在尝试将我的应用程序测试到公共网络,所以我将使用我自己的 ip 作为服务器,我已经在我的路由器设置中进行了端口转发,“我的目标是将此应用程序连接到我网络之外的计算机”但我只能接收数据我无法从我的主 IP 发送到其他计算机,我已经禁用了我的防火墙以及其他 pc 防火墙是我的路由器的问题吗?还是我的网络? 我试图禁用路由器防火墙但仍然存在同样的问题还有其他需要检查的东西吗?我还将我的 indtCP 服务器绑定设置为 0.0.0.0 以访问所有网络。

【问题讨论】:

  • “我只能接收数据,我不能从我的服务器发送到客户端”,这就是客户端/服务器架构的行为方式(如果这是你想要解决的问题解决)。客户端连接到您的服务器,当它们连接时,您可以向它们发送数据。
  • 谢谢你让我明白了一些事情。

标签: delphi indy


【解决方案1】:

您应该能够发送,但只有在客户端连接到您的服务器之后。

当客户端连接时,您应该处理 TIdTCPServer 组件的 OnConnect 事件。 AThread 参数代表您的客户。您可以通过以下方式回复它,例如:

AThread.Connection.Write ('Hi!');

您可以通过以下方式断开客户端连接:

AThread.Connection.Disconnect;

当然,可以同时连接多个客户端。在这种情况下,您应该跟踪所有(断开)连接的客户端。

【讨论】:

  • 请注意,这是 Indy 9 代码。在 Indy 10 中,代替 AThread.Connection 使用 AContext.IOHandler
猜你喜欢
  • 2017-03-03
  • 2011-06-27
  • 2014-09-22
  • 2018-01-27
  • 1970-01-01
  • 2021-12-28
  • 1970-01-01
  • 2012-05-17
  • 2017-12-30
相关资源
最近更新 更多