0

该程序使用python 2.7,我使用谷歌作为我的浏览器。

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:80时,它会引发以下错误: Traceback(最近一次调用最后一次):文件“C:/.../HttpServer.py”,第 7 行,在 client_socket.send(data, len(data)) socket.error: [Errno 10045] 引用的对象类型不支持尝试的操作

在这里查找错误代码 10045,但我不完全明白我应该做什么。

仅当 len(data) 大于 5 或​​者我没有从客户端接收数据时才会发生错误。如果 len(data) 为 1-4,则按预期发送数据,但如果恰好为 5,则不会出现错误,但不会发送第五个字符。我从未在任何其他端口上发生过该错误。任何想法如何解决这个问题,为什么会发生?

提前致谢

4

1 回答 1

0

不要输入字节大小

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

client_socket.send(data)  # Works
于 2018-11-09T10:04:28.870 回答