我正在开发一个简单的python客户端和服务器,它可以在文件发送时编写代码。到目前为止,我一直被困在这个错误上: AttributeError:'tuple‘对象没有属性'read’
以下是客户端代码:
# CCSP Client
# (C) Chris Dorman - 2013 - GPLv2
import socket
import sys
# Some settings
host = raw_input('Enter the Host: ')
port = 7700
buff = 24
connectionmax = 10
# Connect to server
server = socket.socket()
server.connect((host, port))
print 'Connected!'
while True:
open_file = raw_input("File (include path): ")
fcode = open(open_file, "rb")
while True:
readcode = fcode.read(buff)
server.send(readcode)
if not fcode:
server.send("OK\n")
print "Transfer complete"
break服务器:
# CCSP Server
# (C) Chris Dorman - 2013 - GPLv2
import socket
import sys
import string
import random
def id_generator(size=6, chars=string.ascii_uppercase + string.digits):
return ''.join(random.choice(chars) for x in range(size))
host = "0.0.0.0"
port = 7700
buff = 1024
filepath = "/home/chris/"
extension = ".txt"
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((host, port))
print "Server Started"
while True:
server.listen(1)
conn = server.accept()
print 'Client' + str(conn)
print 'Generating a random file'
filename = filepath + str(id_generator()) + extension
fcode = open(filename, "wb")
while True:
if conn != 0:
code = conn.read(buff)
fcode.write(buff)
if conn == "DONE":
print 'Transfer complete'
break #EOT如果能帮上忙,那就太棒了。当这个错误转到服务器脚本上的:code = conn.read(buff)时,我一直收到这个愚蠢的错误
发布于 2013-12-21 01:16:48
正如其他人所指出的,accept()返回一个元组。看起来您需要元组中的第一项,这将是一个新的套接字对象。
当然,套接字也没有read()方法。我猜你真正想要的是:
code = conn.recv(buff)因为recv()返回已写入套接字连接的数据。
发布于 2013-12-21 00:21:10
你应该读一些医生。accept()返回一个元组,而不是一个类似文件的对象。
https://stackoverflow.com/questions/20713981
复制相似问题