WiFi - 使用 UDP 伺服器進行通信

材料準備

  • AmebaD [AMB21 / AMB22 / AMB23 / BW16] x 1

範例説明

這個範例裡,我們使用Ameba連上WiFi,作為UDP服務器端,當UDP 客戶端發送訊息給Ameba之後,回應“acknowledged” 給客戶端。
Open the WiFi Web Server example. “File” “Examples” “WiFi” “WiFiUdpSendReceiveString”
1
將WiFi連線至AP的相關訊息進行修改,包括 ssid, pass, keyIndex
2

上傳程式碼之後,按下Ameba的Reset按鈕, WiFi連線成功後,會開啟UDP服務器,服務器端的IP為Ameba的IP,端口為2390啟動服務之後,會印出訊息“Starting connection to server”,並等待UDP客戶端連線進來。

3
另外在電腦的socket工具上(本示例中使用的工具為“sokit”)
選取Client模式,填寫Server IP和PORT信息,點擊“UDP Connect”.
連接成功後, 傳送字串過去,這個例子裡,在Buf 0填入“Hello World”, 並且按下Send此時會看到Ameba UDP服務器端回應“acknowledged”,並且Ameba的Serial Monitor會看到Contents: “Hello World”,這個例子就成功了。
4

程式碼說明

Ameba使用相容於Arduino Wifi Shield的WiFiUdp class,所以範例程式也與Arduino相容。
首先呼叫 begin() 在Ameba開啟UDP端口
使用parsePacket() 等待客戶端傳送資料進來
如果有資料進來, 使用remoteIP() 與remotePort() 取得客戶端的IP 與Port
並且呼叫 read() 將資料收進來