Forum: Mikrocontroller und Digitale Elektronik Micropython UDP sender


von chris (Gast)


Lesenswert?

Für Micropython gibt es ein Beispiel, das auf UDP-Daten wartet und eine 
Antwort zurück sendet:
1
import network[/align]import socket
2
import time
3
port=10086
4
wlan = network.WLAN(network.STA_IF)
5
wlan.active(True)
6
wlan.connect('dfyanfa', 'df123456')
7
while(wlan.isconnected() == False):
8
  time.sleep(1)
9
ip = wlan.ifconfig()[0]
10
print(ip)
11
s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
12
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) 
13
s.bind((ip,port))
14
print('waiting....')
15
while True:
16
  data,addr=s.recvfrom(1024)
17
  s.sendto(data,addr)
18
  print('received:',data,'from',addr)
( von https://www.dfrobot.com/blog-608.html )
Ich würde aber gerne nur Daten per UDP versenden.
Wie könnte das gehen?

von Stefan F. (Gast)


Lesenswert?

Ich weder deine Programmiersprache, noch die Libraries die du da 
verwendest. Aber die Login sagt mir, dass du nur die Zeile
1
data,addr=s.recvfrom(1024)
weg lassen musst und stattdessen "data" mit den zu sendenden Daten 
befüllen musst, und "addr" Mit der Adresse des Ziels.

von Sascha W. (sascha-w)


Lesenswert?

Dann lässt du setSocketOpt, Bind und recvfrom weg, und sendest 
deine Daten einfach mit sendto. In Data kommen die Daten, Addr ist ein 
Tuppel aus IP und Port wie in Bind.

Sascha

von chris (Gast)


Lesenswert?

>In Data kommen die Daten, Addr ist ein
>Tuppel aus IP und Port wie in Bind.

Danke. Das Problem war tatsächlich das Tupel-Format heraus zu finden:

  addr=('192.168.1.129', 10086)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.