Форум сайта python.su
import socket UDP_IP_TR = "10.0.0.7" UDP_PORT_TR = 4660 MESSAGE = "Hello, World!" print ("UDP target IP:", UDP_IP_TR) print ("UDP target port:", UDP_PORT_TR) print ("message:", MESSAGE) sock = socket.socket(socket.AF_INET, # Internet socket.SOCK_DGRAM) # UDP sock.sendto(MESSAGE, (UDP_IP_TR, UDP_PORT_TR))
UDP target IP: 10.0.0.7 UDP target port: 4660 message: Hello, World! Traceback (most recent call last): File "C:\Users\Anatoliy\AppData\Local\Programs\Python\Python35-32\MyProg\proba_tr.py", line 12, in <module> sock.sendto(MESSAGE, (UDP_IP_TR, UDP_PORT_TR)) TypeError: a bytes-like object is required, not 'str'
Офлайн
AnatoliyBMESSAGE = "Hello, World!"
MESSAGE = b"Hello, World!"
Офлайн
Большое Вам спасибо! Первый барьер преодолён
Офлайн
А как поступить если мне нужно отправить числовой массив?
a = (127,215,11,83,117)
Офлайн
воспользоваться struct.pack :
>>> import struct >>> a = (127,215,11,83,117) >>> s = struct.pack('{}B'.format(len(a)), *a) >>> print(s) b'\x7f\xd7\x0bSu'
Отредактировано JOHN_16 (Окт. 31, 2016 16:30:23)
Офлайн
>>> t = (127, 215, 11, 83, 117) >>> b = bytes(t) >>> b b'\x7f\xd7\x0bSu' >>>
AnatoliyBПо сети символы не передаются, только байты.
Чтобы они были отправлены в пакете udp как 5 соответствующих байт (не как символы).
Отредактировано py.user.next (Окт. 31, 2016 20:32:55)
Офлайн
py.user.nextТак мне же это и нужно было. Спасибо,ребята! Но похоже это не последние вопросы…
По сети символы не передаются, только байты.
Офлайн