[求助大神] Arduino通过代理服务器联网问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9671|回复: 0

[求助大神] Arduino通过代理服务器联网问题

[复制链接]
发表于 2013-6-12 01:44 | 显示全部楼层 |阅读模式
我买了一块Arduino Ethernet Shield连接在Uno上进行网络通讯,连接在学校的网线上。学校的网络需要经过代理服务器才能与外网通讯。代理服务器地址:10.204.18.202:3128

我是用MQTT协议在Arduino上面向Server发布信息,因为代理服务器的关系,始终不能连上外网
MQTT官网上Arduino的function一览:http://knolleary.net/arduino-client-for-mqtt/api/#PubSubClient2

求代码中代理服务器的设置方法,代码如下:

#include <PubSubClient.h>
#include <SPI.h>
#include <Ethernet.h>

// Update these with values suitable for your network.
byte mac[]    = {  0x90, 0xA2, 0xDA, 0x0D, 0xF2, 0x45 };
byte server[] = { 212, 72, 74, 21 }; //MQTT dashboard
//byte ip[]     = { 172, 16, 0, 100 };
byte proxy[] = { 10, 204, 18, 202 }; // School Proxy

void callback(char* topic, byte* payload, unsigned int length)
{
  // handle message arrived
}

EthernetClient ethClient;
PubSubClient arduino(server, 1883, callback, ethClient);

void setup()
{
  Ethernet.begin(mac);
  Serial.begin(9600);
  Serial.println("connecting...");
  Serial.println();
  delay(500);
  int eth=0;
  while (eth==0)
  {
    Serial.println("Proxy Connecting...");
    eth = ethClient.connect(proxy, 3128); //在Ethernet中设置代理服务器地址。
  }
  Serial.println("Proxy Connected!"); //到这里为止都能连得上。
  Serial.println();

  while ((arduino.connect("niunai1221"))==0) //这里就连不上网了,因此一直在while里面循环。
  {
    Serial.println("MQTT Connecting...");
    delay(1000);
  }
  Serial.println("MQTT Connected!");
  arduino.publish("outTopic1221","hello world");
}

void loop()
{
  arduino.loop();
}


这个代码可以让EthernetClient的function越过代理,但是PubSubClient无法一并越过代理,求设置方法~谢谢!



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-29 07:10 , Processed in 0.069153 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表