WiFi - 简单的 TCP 服务器

材料准备

  • AmebaPro2 [ AMB82 MINI ] x 1
  • Laptop(可与Ameba连到相同网域,并安装TCP工具)

范例说明

这个范例里,我们使用 Ameba 连上WiFi,作为服务器,与连接过来的客户端进行对话。

确保在 “Tools” -> “Board” 中选择了正确的Ameba开发板。

然后打开 Simple Web Server的范例, “File” -> “Examples” -> “WiFi” -> “SimpleTCPServer”:

3-1

将WiFi 连线的相关讯息进行修改,将下图中黄色标注的地方进行对应的修改。

3-3

上传程式码之后,按下Ameba 的Reset 按钮, 这时会看到WiFi 连线后的信息。
3-3

在laptop 上的socket 工具上(本示例中使用的工具为“sokit” )通过获取的IP地址以及范例中设定的port 5000 来进行连线。
3-4

选取Client 模式,填写Server IP 和port 信息,点击 “TCP Connect”

连接成功后会显示”A client connected to this Server”,以及Client的IP和port讯息。

从Client 发送一个字串过来,Ameba收到后,会将这个字串再发给Client。

客户端会显示收到这个字串。

3-5

程式码说明
在连线WiFi时会使用到WiFi.begin();
https://www.arduino.cc/en/Reference/WiFiBegin
连线成功后会读取WiFi的信息:
显示WiFi的名称WiFi.SSID()
https://www.arduino.cc/en/Reference/WiFiSSID
显示WiFi的讯号强度WiFi.RSSI()
https://www.arduino.cc/en/Reference/WiFiRSSI
显示Ameba的IP信息WiFi.localIP()
https://www.arduino.cc/en/Reference/WiFiLocalIP
设定服务器的端口号WiFiServer server(5000)
https://www.arduino.cc/en/Reference/WiFiServer
开始服务器的监听server.begin();
https://www.arduino.cc/en/Reference/WiFiServerBegin
判断是否有客户端连线server.available()
https://www.arduino.cc/en/Reference/WiFiServerAvailable
从Server读取数据client.read()
https://www.arduino.cc/en/Reference/WiFiClientRead
对Server发送数据client.write()
https://www.arduino.cc/en/Reference/WiFiClientWrite
与Server断开连线client.stop();
https://www.arduino.cc/en/Reference/WiFIClientStop

请先确认已安装QQ通讯软体