我已經在Python中創建了一個服務器。代碼是:TypeError:'str'不支持3.4.1中的緩衝區接口
from socket import *
serverSocket = socket(AF_INET, SOCK_STREAM)
localHost = # my address
port = 5369
serverSocket.bind((localHost, port))
serverSocket.listen(1)
while True:
print ("Ready to serve.....")
connectionSocket, addr = serverSocket.accept()
try:
message = connectionSocket.recv(1024)
filename = message.split()[1]
f = open(filename[1:])
outputdata = f.read()
for i in range(0, len(outputdata)):
connectionSocket.send(outputdata[i])
connectionSocket.close()
except IOError:
connectionSocket.send('404 Not Found')
connectionSocket.close()
serverSocket.close()
我執行了該文件。它給出了一個錯誤:
Traceback (most recent call last):
File:"D;\.....\server.py", line 25, in <module>
connectionSocket.send(outputdata[i])
TypeError: 'str' does not support the buffer interface.
通過類似的查詢#1掃描後,我發現,在Python 3.0,需要將數據轉換成字節。如果是這樣的話,那麼我應該在哪裏以及如何更改/解析數據?
所有其他問題都解釋說您需要將數據從字符串編碼爲字節。你有沒有嘗試應用?你做什麼錯了? – 2014-09-13 19:12:49
@MartijnPieters我不知道該怎麼做。這是我第一次使用Python。 – user2607744 2014-09-13 19:15:44
請參閱[在Python 3中將字符串轉換爲字節的最佳方式](http://stackoverflow.com/q/7585435),但在這種情況下,以二進制模式打開文件更容易。 – 2014-09-13 19:18:03