В чем проблема? Пытаюсь отправить сообщение через веб-сокет, но скрипт выдает ошибку:
Traceback (most recent call last):
File "C:\socket.py", line 19, in
key = re.findall(r'Sec-WebSocket-Key:\s*(\S+)\r\n', data)[0] + '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'
File "C:\Program Files (x86)\Python\lib\re.py", line 206, in findall
return _compile(pattern, flags).findall(string)
TypeError: can't use a string pattern on a bytes-like object
Этот код по утверждению работает у другого человека. У него макбук. У меня windows 7. Не может же быть, что проблема в ОС.
#!/usr/bin/env python3
import socket
import re
from hashlib import sha1
from base64 import b64encode
HANDSHAKE = 'HTTP/1.1 101 Switching Protocols\r\n\
Upgrade: websocket\r\n\
Connection: Upgrade\r\n\
Sec-WebSocket-Accept: {0}\r\n\r\n'
sock = socket.socket()
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(("", 1337))
sock.listen(5)
while True:
conn, addr = sock.accept()
data = conn.recv(2048)
key = re.findall(r'Sec-WebSocket-Key:\s*(\S+)\r\n', data)[0] + '258EAFA5-E914-47DA-95CA-C5AB0DC85B11'
accept = b64encode(sha1(key).digest())
conn.send(HANDSHAKE.format(accept))
conn.close()