当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Arduino WiFi101 - ConnectSSL()用法及代码示例


说明

使用 SSL 协议连接到构造函数中指定的 IP 地址和端口。当服务器仅提供 HTTPS 连接时,需要方法 connectSSL。在使用此方法之前,需要将服务器使用的 SSL 证书加载到 Arduino WiFi Shield 101 中。Shield 已经加载了证书,应该可以使用了。要更改或上传新的 SSL 证书,您应该遵循将提供的程序。 connectSSL() 还支持在使用域名(例如:google.com)时进行 DNS 查找。

用法

client.connectSSL(ip, port) client.connectSSL(URL, port)

参数

ip:客户端要连接的IP地址(4字节数组)

URL:客户端将连接的域名(字符串,例如:“arduino.cc”)

端口:客户端将连接到的端口(int)

返回

如果连接成功则返回 true,否则返回 false。

示例

/*
  Web client

 This sketch connects to a website through a SSL connection
 using a WiFi shield.

 This example is written for a network using WPA encryption. For
 WEP or WPA, change the Wifi.begin() call accordingly.

 Circuit:
 * WiFi101 shield attached

 created 13 July 2010
 by dlf (Metodo2 srl)
 modified 31 May 2012
 by Tom Igoe
 */


#include <SPI.h>
#include <WiFi101.h>

char ssid[] = "yourNetwork"; //  your network SSID (name)
char pass[] = "secretPassword";    // your network password (use for WPA, or use as key for WEP)
int keyIndex = 0;            // your network key Index number (needed only for WEP)

int status = WL_IDLE_STATUS;
char server[] = "www.arduino.cc";    // name address for Arduino (using DNS)

// Initialize the Wifi client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
WiFiClient client;

void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    // don't continue:
    while (true);
  }

  // attempt to connect to Wifi network:
  while (status != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
    status = WiFi.begin(ssid, pass);

    // wait 10 seconds for connection:
    delay(10000);
  }
  Serial.println("Connected to wifi");

  Serial.println("\nStarting connection to server...");
  // if you get a connection, report back via serial:
  if (client.connectSSL(server, 443)) {
    Serial.println("Connected to server");
    // Make a HTTP request:
    client.println("GET /asciilogo.txt HTTP/1.1");
    client.println("Host: www.arduino.cc");
    client.println("Connection: close");
    client.println();
    Serial.println("Request sent");
  }
}

void loop() {
  // if there are incoming bytes available
  // from the server, read them and print them:
  while (client.available()) {
    char c = client.read();
    Serial.write(c);
  }

  // if the server's disconnected, stop the client:
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting from server.");
    client.stop();

    // do nothing forevermore:
    while (true);
  }
}

相关用法


注:本文由纯净天空筛选整理自arduino.cc大神的英文原创作品 WiFi101 - ConnectSSL()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。