套接字无法发送数据

时间:2014-02-15 15:48:34

标签: python sockets python-3.x

代码

host = "127.0.0.1"
port=4446
from socket import *
s = socket(AF_INET, SOCK_STREAM)
s.bind((host,port))

s.listen(1)

print("Listening for connections...")

q,addr = s.accept()

data = input("Type something in")
q.send(data)
s.close

错误

TypeError:'str' does not support the buffer interface

所以我知道这里有关于这个错误的数百个问题,但我仍然无法想出解决方案,你们其中一个人可以帮助我吗? :(

2 个答案:

答案 0 :(得分:1)

在Python 3中,字符串是 Unicode 值,但套接字只能采用编码字节。

首先对数据进行编码:

q.send(data.encode('utf8'))

我在这里选择UTF-8作为要使用的编解码器,但您需要有意识地选择适合您特定应用的编码。

答案 1 :(得分:0)

字符串是python 3中的Unicode对象。您需要在发送之前将其编码为字节字符串。

Data.encode("ASCII")