Arduino Ameba WifiClient

Arduino WifiClient API


底層是搭配 mbed socket  來製作.
其實在製作時發現 mbed 並沒有像 arduino 有 availabe() API.
mbed 作法是利用底層 lwIP stack, 有  select() 的觀念.
mbed API : receive() / receive_all() 會在一段 timeout 時間內, 把相關的 data 讀回 ,
並傳回說有多長的資料...


目前範例是做瀏覽器一開始最簡單的動作.
做 TCP 連線. 連到 google 的 port 80 (HTTP),
發 HTTP request : "GET /search?q=arduino HTTP/1.0"

得到回應結果 :
( 瀏覽器就是在做這些處理, 以圖像呈現出來, 這塊也有很多 tricky 和有趣的地方, 例如 cookie )

HTTP/1.0 302 Found
Location: http://www.google.com.tw/search?q=arduino&gws_rd=cr&ei=aymzVev_NIOs0ATV-raoCQ
Cache-Control: private
Content-Type: text/html; charset=UTF-8
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Date: Sat, 25 Jul 2015 06:15:07 GMT
Server: gws
Content-Length: 282
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Set-Cookie: PREF=ID=1111111111111111:FF=0:TM=1437804907:LM=1437804907:V=1:S=-Nto3T0bGyAmEUQq; expires=Mon, 24-Jul-2017 06:15:07 GMT; path=/; domain=.google.com
Set-Cookie: NID=69=DgM2Mnp2AsT0nDHqHR5NpYod6CyYB3OSbIR4i0DeczQLssKGA3vCfGJNQo6ZCilrB8IEtz8Y9zoxYjv5Md_2JBk99nJvCjxYzrdnLMrOOuvu11_XYIY_u3dqyPdPlCN6; expires=Sun, 24-Jan-2016 06:15:07 GMT; path=/; domain=.google.com; HttpOnly
Alternate-Protocol: 80:quic,p=0

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.com.tw/search?q=arduino&amp;gws_rd=cr&amp;ei=aymzVev_NIOs0ATV-raoCQ">here</A>.
</BODY></HTML>

留言

熱門文章