Skip to content

Uasyncio-udp, "sendto" Error: (function takes 3 positional arguments but 4 were given) #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Sunrise17 opened this issue Feb 18, 2018 · 1 comment

Comments

@Sunrise17
Copy link

Sunrise17 commented Feb 18, 2018

Dear @peterhinch ,
Dear @pfalcon ,
When i have run following code, i am receiving an error from sendto method in udp.py.

In addition to that, i want to bind the socket to the port in uasyncio-udp (as like in socket method sock.bind((IP, PORT)) to listen incoming messages from that port. Can sendto method allow me to listen that port?

def UDPListener(addr):
    s = uasyncio.udp.socket()
    yield from uasyncio.udp.sendto(s, b"!eeeeeee", addr)
    while True:
        print("Listening Started")
        try:
            resp = yield from uasyncio.wait_for(uasyncio.udp.recv(s, 1024), 1)
            print(resp)
        except uasyncio.TimeoutError:
            print("timed out")


def webServer(ipAddress):
    addr = usocket.getaddrinfo(ipAddress, 47778)[0][-1]
    loop = uasyncio.get_event_loop()
    loop.create_task(UDPListener(addr))
    loop.run_forever()

webServer("192.168.1.139")


  File "/lib/uasyncio/udp.py", line 48, in sendto
TypeError: function takes 3 positional arguments but 4 were given
@Sunrise17
Copy link
Author

Well, finally sock.bind() method is working asynchronous.

pfalcon added a commit that referenced this issue May 3, 2020
During development, following questions were posed, and subsequently,
answered:

Q #1: Should this be in uasyncio package at all? Upstream doesn't have
this. Pro: will be easier for people do discover (see e.g.
micropython/micropython-lib#148)

A: uasyncio diverges more and more from asyncio, so if something is
convinient for uasyncio, there's no need to look back at asyncio.

Q #2: This provides implements 2 ways to create a WS connections:
1) using start_ws_server(); 2) using wrapping existing StreamReader
and StreamWriter. History: initial prototype of course used 2). But
the idea was "it should be like the official start_server()!!1". But
then I though how to integrate it e.g. with Picoweb, and became clear
that 2) is the most flixble way. So, 1) is intended to be removed.

A: 1) was removed and is not part of the merged version of the patch.

Q #3: Uses native websocket module for read path, but has own
write path due to micropython/micropython#3396

A: So far, so good.

Q #4: Requires micropython/micropython-lib#227
due to micropython/micropython#3394 .

A: The prerequisite was merged.
pfalcon added a commit that referenced this issue May 3, 2020
During development, following questions were posed, and subsequently,
answered:

Q #1: Should this be in uasyncio package at all? Upstream doesn't have
this. Pro: will be easier for people do discover (see e.g.
micropython/micropython-lib#148)

A: uasyncio diverges more and more from asyncio, so if something is
convinient for uasyncio, there's no need to look back at asyncio.

Q #2: This provides implements 2 ways to create a WS connections:
1) using start_ws_server(); 2) using wrapping existing StreamReader
and StreamWriter. History: initial prototype of course used 2). But
the idea was "it should be like the official start_server()!!1". But
then I though how to integrate it e.g. with Picoweb, and became clear
that 2) is the most flixble way. So, 1) is intended to be removed.

A: 1) was removed and is not part of the merged version of the patch.

Q #3: Uses native websocket module for read path, but has own
write path due to micropython/micropython#3396

A: So far, so good.

Q #4: Requires micropython/micropython-lib#227
due to micropython/micropython#3394 .

A: The prerequisite was merged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant