2

我不明白这种类型的错误有什么问题。我有一个反向连接服务器(类型 Socks4/5 或 HTTP)。我使用服务器连接到其中一台远程 PC。为此,我打开了一个到此服务器之一的 TCP 连接(serverip:randport)。

// create an instance of the client proxy factory
            ProxyClientFactory factory = new ProxyClientFactory();

            ProxyHost = "string:serverIP";
            ProxyPort = int:serverPort;

            proxy = factory.CreateProxyClient(proxyType, ProxyHost, ProxyPort);
            try
            { .. }

我为该工厂使用 Starksoft SOCKS 和 HTTP 代理组件 v1.0.130.0。

现在的问题是:要发送电子邮件,我使用 RFC821 来配置远程 PC 上的通信。如果您在 localhost 上由您的提供商打开了 25 端口,这也是同样的处理。

            snd("HELO", true);
            snd("MAIL FROM:" + sender, true);
            snd("RCPT TO:" + recipient, true);
            snd("DATA", true);
            snd("From: " + sender);
            snd("To: " + recipient);
            snd("Subject: " + subject);
            snd("");
            snd(messagebody);
            snd(".", true);
            snd("QUIT", true);  

我在这一行得到一个错误

private bool snd(string buffer, bool getresponse)
        {
            this.response = "";
            NetworkStream stream = this.GetStream();
            Byte[] sendBytes = Encoding.Default.GetBytes(buffer + crlf);
            if (!stream.CanWrite) { return false; }
            try
            {
                stream.Write(sendBytes, 0, sendBytes.Length);
            }

屏幕 Nr1 +$exception {“无法将数据写入传输连接:已建立的连接被主机中的软件中止。”} System.Exception {System.IO.IOException}

和控制台写这个异常 屏幕 Nr2in

我如何进行反向反向连接???

答案是使用中间服务器。然后脚本将如下所示:

  1. 有中间服务器打开一个端口是没有问题的,比如65080为服务器和80个客户端
  2. 有一个服务器(HTTP),它不能打开端口,但他知道中间服务器的地址,以及“服务器”端口 65080。它连接到一个中间服务器连接 1。
  3. 有一个普通的客户端,比如浏览器
  4. 客户端在端口 80 连接 2 上连接到中间服务器,并发出请求
  5. 此外,中间服务器直接向连接到端口 65 080 复合 1 的执行请求报告,该请求将不得不关闭 -
  6. 服务器接收到请求,服务器连接到另一个中间复合 3,询问中间件服务器请求,完成它,并将响应发送到暂存服务器
  7. 中间服务器将来自服务器(来自复合 3)的响应转发给客户端(对于复合 2)
  8. 客户端终止连接

那么我哪里做错了?

4

0 回答 0