这个是ESP32上的TCP服务器写法,前面是用来联网的,后面是服务器监听
import time
import network
time.sleep(5)
class wlan_ever(object):
def __init__(self,name,password):
self.wlan_is_connect=0
self.name = name
self.password =password
def threadRun1(self):
print('网络线程启动')
wl=network.WLAN(network.STA_IF)
wl.disconnect()
wl.active(True)
wl.disconnect()
time.sleep(0.5)
wl.connect(self.name,self.password)
while 1:
self.wlan_is_connect=wl.isconnected()
if self.wlan_is_connect :
print(wl.ifconfig())
break
w= wlan_ever('300king','13704677369')
if w.wlan_is_connect:
pass
else:
w.threadRun1()
print('联网成功')
**************************************************************
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('',9889))
sock.listen(5)
dat=b''
while 1:
print('准备接收')
connection,address = sock.accept()
print ("Connect from:", address)
connection.settimeout(50)
try:
while 1:
data=connection.recv(10240)
print(len(data))
dat=dat+data
if data.find(b'#1end1#')>-1:
dat=dat[:-7]
print('end')
break
with open ('3333.jpg','wb') as f:
f.write(dat)
connection.send('ok'.encode('gbk'))
dat=b''
connection.close()
except :
print('超时了')
connection.close()
客户端的写法,也是ESP32 里边的所以有联网部分
import socket
import time
import network
time.sleep(5)
class wlan_ever(object):
def __init__(self,name,password):
self.wlan_is_connect=0
self.name = name
self.password =password
def threadRun1(self):
print('网络线程启动')
wl=network.WLAN(network.STA_IF)
wl.active(True)
wl.disconnect()
time.sleep(0.5)
wl.connect(self.name,self.password)
while 1:
self.wlan_is_connect=wl.isconnected()
if self.wlan_is_connect :
print(wl.ifconfig())
break
w= wlan_ever('300king','13704677369')
if w.wlan_is_connect:
pass
else:
w.threadRun1()
print('联网成功')
************************************************************
import socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print('配置TCP')
s.connect(('192.168.3.190',9889))
print('连接服务器')
with open('3333.jpg','rb') as f:
data=f.read()
send_data=data+b'#1end1#'
s.sendall(send_data)
recvData=s.recv(1024)
print('接收到的数据为:', recvData)
s.close()
下面是8266,随便写一套
import time,json,network,machine
time.sleep(5)
from machine import WDT,Pin
p2=Pin(2,Pin.OUT,value=1)
def CreatNetwork(ssid,pwd):
ap_if = network.WLAN(network.AP_IF)
ap_if.active(True)
ap_if.config(essid=ssid,password=pwd)
return ap_if.ifconfig()[0]
addr=CreatNetwork('esp01sServer','1234567890')
print('联网成功:',addr)
p2.value(0)
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('',9000))
sock.listen(5)
while 1:
print('准备接收')
connection,address = sock.accept()
print ("Connect from:", address)
connection.settimeout(50)
try:
while 1:
data=connection.recv(1024)
print(data)
connection.send(data)
if data.find(b'end') >-1 or data==b'':
break
except :
print('超时了')
connection.close()
connection.close()
import time,json,network,machine
time.sleep(5)
from machine import WDT,Pin
p2=Pin(2,Pin.OUT,value=1)
wl=network.WLAN(network.STA_IF)
wl.active(True)
wl.disconnect()
def lan_on_off(ssid,password):
if wl.isconnected()==0:
wl.active(False)
time.sleep(1)
wl.active(True)
while wl.isconnected()==0 :
wl.connect(ssid,password)
time.sleep(20)
try:
lan_on_off('esp01sServer','1234567890')
except:
machine.reset()
print('联网成功')
p2.value(0)
import socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print('配置TCP')
print(wl.ifconfig())
time.sleep(3)
s.connect(('192.168.4.1',9000))
print('连接服务器')
num=15
recvDataStar=b'0'
while 1:
num=num+2
s.sendall(b'%s'%str(num))
recvData=s.recv(1024)
time.sleep(10)
print(num,recvData)
if recvDataStar!=recvData:
recvDataStar=recvData
else:
s.connect(('192.168.4.1',9000))
if num<0:
s.sendall(b'end')
break
print('接收到的数据为:', recvData)
s.close()