Új hozzászólás Aktív témák

  • zeix

    senior tag

    Én is szeretnék egy kis segítséget kérni. Nekem is új a python, a php-t jobban ismerem.
    Ez pontosan micropython, amit mikrokontrollerekhez fejlesztettek (alakítottak), de sok dologban egyezik a pythonnal. A problémám egy szimpla webserver:

    import time
    from machine import Pin
    import usocket as socket
    import network


    sta_if = network.WLAN(network.STA_IF)
    while not sta_if.isconnected():
    print ('csatlakozás')
    time.sleep(1)

    ipadress = sta_if.ifconfig()

    ipcim = tuple(ipadress)
    print (ipcim[0])

    html = """<!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <style>
    button {
    background-color: #555555;
    border: none;
    color: white;
    padding: 15px 32px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    margin: 4px 2px;
    cursor: pointer;
    }

    </style>
    </head>
    <BODY>

    <form>
    <input type="hidden" name="kapcsolas" value="szimpla">
    <table width="100%">
    <tr>
    <td>LED RED</td>
    <td><button name="relay" value="01-1" type="submit">BE</button></td>
    <td><button name="relay" value="01-0" type="submit">KI</button></td>
    </tr>
    <tr>
    <td>LED RED</td>
    <td><button name="relay" value="02-1" type="submit">BE</button></td>
    <td><button name="relay" value="02-0" type="submit">KI</button></td>
    </tr>
    <tr>
    <td>LED RED</td>
    <td><button name="relay" value="03-1" type="submit">BE</button></td>
    <td><button name="relay" value="03-0" type="submit">KI</button></td>
    </tr>
    <tr>
    <td>LED RED</td>
    <td><button name="relay" value="04-1" type="submit">BE</button></td>
    <td><button name="relay" value="04-0" type="submit">KI</button></td>
    </tr>
    <table>
    </form>

    <form>
    <input type="hidden" name="kapcsolas" value="1multi1">
    <table width="100%">
    <tr>
    <td align="CENTER"><button name="relay" value="1111000000000000" type="submit">MINDEN BE</button></td>
    <td align="CENTER"><button name="relay" value="1111000000000000" type="submit">LÁMPÁK BE</button></td>
    </tr>
    <tr>
    <td align="CENTER"><button name="relay" value="1111000000000000" type="submit">LÁMPÁK KI</button></td>
    <td align="CENTER"><button name="relay" value="1111000000000000" type="submit">MINDEN KI</button></td>
    </tr>
    <table>
    </form>
    </BODY>
    </html>
    """

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind(('', 80))
    s.listen(5)
    while True:

    conn, addr = s.accept()

    request = conn.recv(1024)

    request = str(request)
    kapcsolas = request[18:25]
    print (request[32:36])
    relay = request[32:36]


    response = html
    conn.sendall(response) #a probléma itt van!!!!
    conn.close()

    usocket modul leírása
    A conn.sendall(response) parancs random elszáll egy szép hibakóddal: OSError: [Errno 104] ECONNRESET

    Ha a sima conn.send(response) parancsot használom, akkor nem küldi el az összes adatot max. kb 1074Byte-ot.
    Ez, ha jól értelmezem le is van írva, hogy a send parancs nem küldi el az összes adatot (“short write”).
    Cselesen több részre tagoltam a html kódot és így próbáltam több send paranccsal küldeni, de így ugyanaz a
    hibakód fogad véletlen számú lekérdezések után: OSError: [Errno 104] ECONNRESET

    Írtam már a micropython fórumba is, de nem érkezett segítőkész válasz eddig.
    Remélem Ti tudtok segíteni!
    :R

Új hozzászólás Aktív témák