我遇到了一个奇怪的问题,需要有人帮助。我有一个程序作为代理链的一部分。它接收来自一个地方的数据并将其发送到另一个地方。唯一的问题是,我的接收方法不接收任何东西,只是在那里冻结了。我的程序:
假设我们在链中有四个节点:A、B、C 和 D。
A 是一个 Web 浏览器。
B 是我的 C# 程序。
C 是我的 C# 客户端。
D 是一个网站。
B 听取 C 和 A 的内容。非常奇怪,但这就是我需要的配置方式。如何让这该死的程序工作?我已经编写了大量的代码,但出于某种原因,C 无法从 B 接收任何内容。有人能帮帮我吗?
我已经打开了所有端口,我的防火墙对 B 和 C 都关闭了。A 和 B 都在我的本地机器上运行。以下是一些 IP:
A 连接到 127.0.0.1:3056
B 听取 127.0.0.1:3056 和 IPAddress.Any:3055
C 连接到 MY_IP_ADDRESS:3055,并连接到 B 告诉它的任何地方
其中 MY_IP_ADDRESS 是从 whatismyip.com 获取的全局 IP 地址。
为什么 C 收不到任何内容?以下是一些相关代码:
客户端 (C):
假设我们在链中有四个节点:A、B、C 和 D。
A 是一个 Web 浏览器。
B 是我的 C# 程序。
C 是我的 C# 客户端。
D 是一个网站。
B 听取 C 和 A 的内容。非常奇怪,但这就是我需要的配置方式。如何让这该死的程序工作?我已经编写了大量的代码,但出于某种原因,C 无法从 B 接收任何内容。有人能帮帮我吗?
我已经打开了所有端口,我的防火墙对 B 和 C 都关闭了。A 和 B 都在我的本地机器上运行。以下是一些 IP:
A 连接到 127.0.0.1:3056
B 听取 127.0.0.1:3056 和 IPAddress.Any:3055
C 连接到 MY_IP_ADDRESS:3055,并连接到 B 告诉它的任何地方
其中 MY_IP_ADDRESS 是从 whatismyip.com 获取的全局 IP 地址。
为什么 C 收不到任何内容?以下是一些相关代码:
客户端 (C):
Socket reqSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ip = new IPEndPoint(IPAddress.Parse("MY_IP_ADDRESS"), 3055);
reqSocket.Connect(ip);
byte[] ReqData = new byte[8192];
MessageBox.Show("BYTE"); // This runs, (click OK)
reqSocket.Receive(ReqData);
String ReqString = Encoding.UTF8.GetString(ReqData);
MessageBox.Show(ReqString); // This does not
服务器(B):
TcpListener listener = new TcpListener(IPAddress.Parse("127.0.0.1"), 3056);
listener.Start();
Socket Localhost = listener.AcceptSocket();
listener.Stop();
TcpListener listener2 = new TcpListener(IPAddress.Any, 3055);
listener2.Start(50);
Socket toSocket = listener2.AcceptSocket();
listener2.Stop();
byte[] buf = new byte[8192];
Localhost.Receive(buf);
toSocket.Send(buf);
MessageBox.Show("Sent!"); // This runs
这两个确实同时开放。