Как устранить ошибку 10045 при отправке данных через порт 80 с использованием Python 2.7

Программа использует Python 2.7, и я использую Google в качестве браузера.

import socket

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('0.0.0.0', 80))
server_socket.listen(10)
client_socket, client_address = server_socket.accept()
print 'New client'
req = client_socket.recv(1024)
data = '0123'
client_socket.send(data, len(data))
client_socket.close()
server_socket.close()

Когда я запускаю программу и захожу в браузер http://127.0.0.1/, возникает следующая ошибка: Traceback (последний вызов был последним): файл "C:/.../HttpServer.py", строка 7, в client_socket.send(data, len(data)) socket.error: [Errno 10045] Попытка операции не поддерживается для типа объекта, на который ссылаются

Я искал здесь код ошибки 10045, но я не до конца понял, что мне делать.

Ошибка возникает только тогда, когда len (data) больше 5 или я не получаю данные от клиента. Если len (data) - 1-4, данные отправляются как положено, но если это точно 5, то ошибка не возникает, но пятый символ не отправляется. Ошибка никогда не происходила со мной ни на каких других портах. Есть идеи, как решить эту проблему и почему это происходит?

заранее спасибо

1 ответ

Решение

Не вводите размер в байтах

client_socket.send(data, len(data))  # Errno 10045

client_socket.send(data)  # Works
Другие вопросы по тегам