收藏

通过Socket编程实现与电脑服务器助手建立TCP连接,相互收发数据

分类: 基础知识篇 >> ESP32网络相关 发布于 2024-05-16 339次阅读0点赞0收藏

通过Socket编程实现pyWiFi-ESP32与电脑服务器助手建立TCP连接,相互收发数据

#导入相关模块
import network,usocket,time
from machine import SoftI2C,Pin,Timer

#WIFI连接函数
def WIFI_Connect():

    WIFI_LED=Pin(12, Pin.OUT) #初始化WIFI指示灯

    wlan = network.WLAN(network.STA_IF) #STA模式
    wlan.active(True)                   #激活接口
    start_time=time.time()              #记录时间做超时判断

    if not wlan.isconnected():
        print('Connecting to network...')
        wlan.connect('xxxx', '88888888') #输入WIFI账号密码

        while not wlan.isconnected():

            #LED闪烁提示
            WIFI_LED.value(1)
            time.sleep_ms(300)
            WIFI_LED.value(0)
            time.sleep_ms(300)

            #超时判断,15秒没连接成功判定为超时
            if time.time()-start_time > 15 :
                print('WIFI Connected Timeout!')
                break

    if wlan.isconnected():
        #LED点亮
        WIFI_LED.value(1)

        #串口打印信息
        print('network information:', wlan.ifconfig())

        #数据显示
        print('IP/Subnet/GW:')
        print(wlan.ifconfig()[0])
        print(wlan.ifconfig()[1])
        print(wlan.ifconfig()[2])

        return True

    else:
        return False


#判断WIFI是否连接成功
if WIFI_Connect():

    #创建socket连接TCP类似,连接成功后发送“Hello!”给服务器。
    s=usocket.socket()
    addr=('192.168.1.116',10000) #服务器IP和端口
    s.connect(addr)
    s.send('Hello!')


while True:

    text=s.recv(128) #单次最多接收128字节
    if text == '':
        pass

    else: #打印接收到的信息为字节,可以通过decode('utf-8')转成字符串
        print(text)
        s.send('I got:'+text.decode('utf-8'))

    time.sleep_ms(300)
VIP
购买
建议
意见
联系
客服
在线咨询

您可以与在线客服进行沟通获得帮助

工作日:8:00~22:00节假日:9:00~20:00

微信号: mpyos01

Q Q号: 1401211620

免费
福利
0.049041s