服务端 app.py
#coding: utf-8
import socket
HOST = '172.16.*.1*' #使用服务器内网ip
PORT = 17766 #设置端口号
ADDR = (HOST,PORT) #放在一起就是套接字了
web = socket.socket() #创建socket对象
web.bind(ADDR) #绑定端口
web.listen(5) #可同时连接5个客户端
print('sever is listening...')
while True:
client_connection,client_address = web.accept() #建立客户端连接
print('link addr:')
print(client_address) #打印客户端发来的嵌套字
client_connection.send(str.encode("HELLO,WORLD")) #向客户端发送信息,需要byte类型的参数,需要做一下转换
data = client_connection.recv(1024)
print(data)
client_connection.close() #关闭连接
客户端 main.py , EPS32安装了micpython
'''
WIFI实验-Socket通信
'''
#导入Pin模块
from machine import Pin
import time
import network
import usocket
#定义LED控制对象
led1=Pin(15,Pin.OUT)
#路由器WIFI账号和密码
ssid="HUAWEI-F23"
password="Ch199410"
#服务器地址和端口
dest_ip="119.29.*7.**" #服务器公网ip
dest_port=17766 #服务器soket开通的端口,自己定义开通
#WIFI连接
def wifi_connect():
wlan=network.WLAN(network.STA_IF) #STA模式
wlan.active(True) #激活
start_time=time.time() #记录时间做超时判断
if not wlan.isconnected():
print("conneting to network...")
wlan.connect(ssid,password) #输入WIFI账号和密码
while not wlan.isconnected():
led1.value(1)
time.sleep_ms(300)
led1.value(0)
time.sleep_ms(300)
#超时判断,15 秒没连接成功判定为超时
if time.time()-start_time>15:
print("WIFI Connect Timeout!")
break
return False
else:
led1.value(0)
print("network information:", wlan.ifconfig())
return True
#程序入口
if __name__=="__main__":
if wifi_connect():
socket=usocket.socket() #创建socket连接
addr=(dest_ip,dest_port) #服务器IP地址和端口
socket.connect(addr)
socket.send("Hello PRECHIN")
while True:
text=socket.recv(128) #单次最多接收128字节
if text==None:
pass
else:
print(text)
socket.send("I get:"+text.decode("utf-8"))
time.sleep_ms(300)