Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 2927|回復: 4
打印 上一主題 下一主題

想請問Arduino內的範例SimpleWebServerWiFi 的問題

[複製鏈接]
1#
發表於 2017-11-20 13:52:12 | 顯示全部樓層
http 的命令都是以 "\r\n" 做結束
所以除了收到 '\r', 都必須把收到的字元依序存起來
currentLine += c;

而收到 '\n', 就表示已經收到一個完整的命令
就可以開始根據該命令, 去做應該做的事情

2#
發表於 2017-11-20 14:31:07 | 顯示全部樓層
本帖最後由 超新手 於 2017-11-20 16:15 編輯

>>那如果我不想要Web功能了
>>是否就不需要  if (c == '\n')
如果你是跑 HTTP 的話
還是需要 '\r\n'
否則你怎麼知道命令什麼時候結束?
>>還有 char c = client.read() 這個讀到的值 是什麼的值呢
這個值就是當你在瀏灠器的網址列輸入網址後, 按下 ENTER
瀏灠器就會送一堆資料過來, 例如
GET /index.html HTTP/1.1


而你所用的這個例子
就是(.....表示一堆資料)
............GET /H

............GET /L
每讀一個字元client.read(), 就會依收到
......'G', 'E', 'T', ' ', '/', 'H', '\r', '\n'
所以每收到一個字元
就用
currentLine += c;   
去一個字一個字結合起來
最後會得到
currentLine = "..........GET /H";   


因為網頁長這個樣子
Click <a href=\"/H\">here</a> turn the LED on pin 9 on<br>
Click <a href=\"/L\">here</a> turn the LED on pin 9 off<br>
所以當你按下了網頁的H 的 here  (或 L 的 here )
瀏灠器就需要去取得H這個網頁(或 L)


除非你不走 HTTP, 改用 TCP/IP
那就可以把 '\n' 一堆東西拿掉

您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-8 23:05 , Processed in 0.168091 second(s), 6 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表