[RTL8722CSM] [RTL8722DM] Echo 服务器与客户端

材料准备

  • AmebaD[AMB21 / AMB22] x 2

范例说明

WiFi连接完成后即可使用Socket来使用网路。 Socket就像一个假想的乙太网路介面,你可以用它把你的PC连接到互联网上的服务器上,比如Google或Github。

即使是像HTTP这样的应用层协议也是建立在socket之上的。一旦给定了IP地址和端口号,就可以自由地连接到远程设备并与其进行通信。连接流程如下图所示。

image1

下面是一个使用服务器socket和客户端socket互相传送消息的范例,要使用这个范例,您需要两个ameba RTL8722来运行MicroPython,在REPL 的paste模式下分别将下面的代码复制并粘贴到两个ameba。

以下是 服务器 代码

 1import socket
 2from wireless import WLAN
 3wifi = WLAN(mode = WLAN.STA)
 4wifi.connect(ssid = "YourWiFiSSID", pswd = "YourWiFiPassword") # change the ssid and pswd to yours
 5s = socket.SOCK()
 6port = 5000
 7s.bind(port)
 8s.listen()
 9conn, addr = s.accept()
10while True:
11  data = conn.recv(1024)
12  conn.send(data+"from server")

以下是 客户端 代码

 1import socket
 2from wireless import WLAN
 3wifi = WLAN(mode = WLAN.STA)
 4wifi.connect(ssid = "YourWiFiSSID", pswd = "YourWiFiPassword") # change the ssid and pswd to yours
 5c = socket.SOCK()
 6# make sure to check the server IP address and update in the next line of code
 7c.connect("your server IP address", 5000)
 8c.send("hello world")
 9data = c.recv(1024)
10print(data)