通过防火墙代理将Arduino连接到Internet

Ash*_*rma 5 c c++ proxy tcp arduino

我有一个带以太网盾的Arduino .

如何通过防火墙代理将其连接到Internet?

例如,Arduino以太网库只有这个参考,以演示如何将您的主板连接到互联网,但不知道如何跨防火墙代理等做到这一点.

从Arduino帮助页面重复.

#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 10, 0, 0, 177 };
byte server[] = { 64, 233, 187, 99 }; // Google

Client client(server, 80);

void setup()
{
  Ethernet.begin(mac, ip);
  Serial.begin(9600);

  delay(1000);

  Serial.println("connecting...");

  if (client.connect()) {
    Serial.println("connected");
    client.println("GET /search?q=arduino HTTP/1.0");
    client.println();
  } else {
    Serial.println("connection failed");
  }
}

void loop()
{
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
    for(;;)
      ;
  }
}
Run Code Online (Sandbox Code Playgroud)

可以看出,这里无法通过防火墙代理解析我的TCP连接.

另外我很好奇在上面的上下文中如何通过防火墙代理解决整个TCP连接过程,请也提供一些合适的参考.

Ger*_*rit 6

如果要通过代理连接,请使用代理服务器名称作为要连接的地址,并将服务器地址包含在GET请求中:

// if you get a connection, report back via serial:
if (client.connect("www.proxy.com", 8080)) {  // This is connecting to the proxy
Serial.println("connected");

// Make a HTTP request through proxy:
client.println("GET http://www.actualserver.com/search?q=arduino HTTP/1.0");
client.println();
Run Code Online (Sandbox Code Playgroud)

原来的答案就在这里.


Tim*_*mmm 0

该类Client既不支持 SOCKS 也不支持 HTTP 代理。您必须Ethernet.h自己修改代码。