
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 #如果是PC机直接从这里开始用下面的就行
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #设定模式服务端
sock.bind(('',9889)) #绑定本机ip 和端口
sock.listen(5) # 监听启动,队列5
dat=b''
while 1: #外层循环,接收连接
print('准备接收')
connection,address = sock.accept() #没接收数据会阻塞在这里
print ("Connect from:", address) #有链接
connection.settimeout(50) #超时设定5秒 ,时间根据业务逻辑任意调节
try:
while 1: #内圈循环,用来持续接收数据
data=connection.recv(10240) #数据缓存池中的数据传入
print(len(data))
dat=dat+data #dat数据预先定义好二进制类型,持续接收数据
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 #PC机使用这里开始到下面的内容
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) #发送数据,务必使用sendall
recvData=s.recv(1024) #接收数据
print('接收到的数据为:', recvData)
s.close()
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)