Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 回接服务器和SMTP故障_C#_Sockets_Smtp_Reverse Proxy - Fatal编程技术网

C# 回接服务器和SMTP故障

C# 回接服务器和SMTP故障,c#,sockets,smtp,reverse-proxy,C#,Sockets,Smtp,Reverse Proxy,我不明白这类错误有什么问题。 我有一个反向连接服务器(类型Socks4/5或HTTP)。我使用一台服务器连接到一台远程PC。为此,我打开了与此服务器之一的TCP连接(serverip:randport) 我使用Starksoft SOCKS和HTTP代理组件v1.0.130.0来实现该工厂 现在的问题是: 要发送电子邮件,我使用RFC821配置远程PC上的通信。 如果您的提供商在本地主机上打开了25个端口,则这是相同的交易 snd("HELO", true);

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

我使用Starksoft SOCKS和HTTP代理组件v1.0.130.0来实现该工厂

现在的问题是: 要发送电子邮件,我使用RFC821配置远程PC上的通信。 如果您的提供商在本地主机上打开了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);
            }
+$exception{“无法将数据写入传输连接:已建立的连接被主机中的软件中止。”}System.exception{System.IO.IOException}

控制台在异常时写入此命令

如何反向反向连接连接???

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

  • 有一个中间服务器,打开一个端口没有问题,例如,服务器65 080和80个客户端
  • 有一个无法打开端口的服务器(HTTP),但他知道中间服务器的地址,以及“服务器”端口65080。它连接到中间服务器连接1
  • 有一个常规的客户端,如浏览器
  • 客户端连接到端口80连接2上的中间服务器,并发出请求
  • 此外,中间服务器直接向连接到端口65 080 component 1的执行请求报告,该端口发出请求,并且它将必须关闭-
  • 服务器接收请求,服务器连接到另一个中间化合物3,请求中间件服务器请求,完成请求,并向临时服务器发送响应
  • 中间服务器将响应从服务器(化合物3)转发到客户端(化合物2)
  • 客户端终止连接
  • 那么我哪里出错了?
    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);
                }