gpt4 book ai didi

c# - 如果在远程服务器机器上运行应用程序,TCP 连接会被终止 - 奇怪的行为

转载 作者:可可西里 更新时间:2023-11-01 02:43:49 25 4
gpt4 key购买 nike

所以,我知道这个问题会有点“模糊”,因为我真的不能给你这个问题的任何代码示例,但我会尝试解释这个问题,也许有人会认出它。

基本上,我有两个应用程序,都是用 C# 编写的。

[App A] 通过 TCP 套接字连接到 [App B] 并发送数据,[App B] 当然可以在同一个 TCP 连接上将数据发送回 [App A]。 [应用 B] 是一个已经使用了 6-7 年并且在“生产服务器”上运行良好的应用。

问题是这样的:

如果我在本地机器上运行 [App A] 和 [App B],comm.他们之间的工作正如预期的那样。

但是如果我在服务器/远程机器上运行 [App A] 和 [App B](两者都在同一台机器上运行,但在远程服务器上运行)那么它们之间的通信不会按预期工作。然后 [App A] 连接并设法向 [App B] 发送数据,[App B] 做出相应 react 并将回复发送给 [App A],但 [App A] 从未收到回复,相反我看到了TCP 连接被终止。

如果我在本地机器上运行完全相同的代码,这不会发生。

现在,如果我改为在我的本地计算机上运行 [App A],并且 [App A] 连接到远程/服务器计算机上的 [App B],那么它也会按预期工作,即。通信。工作并且 TCP 连接保持事件状态。

如果我让 [App B] 继续在远程服务器上运行,而是在远程服务器(而不是我的本地机器)上启动 [App A],那么它就不会再工作了; [App A] 发送数据后,TCP 连接被终止。

在我看来,这不是代码的问题,因为它可以在本地运行,而且如果我在不同的机器上运行应用程序,对吧?

我在两台机器上运行 Windows,本地 Win 7 和远程/服务器机器上的 Win Server 2003,使用 .NET 4.0。

这会敲响警钟吗?

最佳答案

听起来很像运行 App A 的服务器有本地防火墙设置或物理防火墙阻止来自 App B 服务器的入站连接。

检查您正在监听的端口和连接类型(TCP 或 UDP)是否允许入站连接。

关于c# - 如果在远程服务器机器上运行应用程序,TCP 连接会被终止 - 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15045520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com