Python 当我写;dir";我得到这个错误类型error:descriptor';编码';需要一个';str';原因是;如果len(str.encode(cmd))>;0

Python 当我写;dir";我得到这个错误类型error:descriptor';编码';需要一个';str';原因是;如果len(str.encode(cmd))>;0,python,python-2.7,python-3.x,sockets,Python,Python 2.7,Python 3.x,Sockets,使用原始输入而不是输入(参见)。查看input返回给您的值和类型 而且str只接受一个参数(在if中向下几行)。使用raw\u input而不是input(cf)。查看input返回给您的值和类型 另外,str只接受一个参数(在if中向下几行)。我还有一个client.py文件,如果需要,请告诉我!你应该发布完整的错误!!发布客户端不会造成任何伤害,只要它相当小。你应该决定使用哪个版本的python。您的目标是2/3交叉兼容的产品吗?字符串处理(尤其是编码/解码方面)明显不同,希望在这两个版本中

使用
原始输入
而不是
输入
(参见)。查看
input
返回给您的值和类型


而且
str
只接受一个参数(在
if
中向下几行)。

使用
raw\u input
而不是
input
(cf)。查看
input
返回给您的值和类型


另外,
str
只接受一个参数(在
if
中向下几行)。

我还有一个client.py文件,如果需要,请告诉我!你应该发布完整的错误!!发布客户端不会造成任何伤害,只要它相当小。你应该决定使用哪个版本的python。您的目标是2/3交叉兼容的产品吗?字符串处理(尤其是编码/解码方面)明显不同,希望在这两个版本中都能实现某些功能可能需要额外的工作。请不要滥用标记:这里没有关于
子进程
,也没有关于
python-3.x
(因为您导入了
打印函数
),并且当您的代码使用套接字时,你的问题根本不相关。我还有一个client.py文件,如果需要请告诉我!你应该发布完整的错误!!发布客户端不会造成任何伤害,只要它相当小。你应该决定使用哪个版本的python。您的目标是2/3交叉兼容的产品吗?字符串处理(尤其是编码/解码方面)明显不同,希望在这两个版本中都能实现某些功能可能需要额外的工作。请不要滥用标记:这里没有关于
子进程
,也没有关于
python-3.x
(因为您导入了
打印函数
),并且当您的代码使用套接字时,您的问题一点也不相关。谢谢您,先生,如果我还有任何错误,我会告诉您的。现在我得到这个错误“TypeError:str()最多接受1个参数(给定2个)…我知道你在上面提到str只能接受一个参数,但是你能告诉我如何解决这个问题吗?也许你可以阅读上的文档,谢谢你,先生,如果我还有任何错误,我会告诉你的。现在我得到这个错误“TypeError:str()最多接受一个参数(给定2个)…我知道你上面提到str只能接受一个论点,但你能告诉我如何解决这个问题吗?也许你可以阅读和上的文档
from __future__ import print_function
import socket
import sys

def socket_create():

    try:

        global host
        global port
        global s
        host = ''
        port = 9999
        s = socket.socket()
    except socket.error as msg:
        print("Socket creation error: " + str(msg))



def socket_bind():

    try:
        global host
        global port
        global  s
        print("Binding socket to port: " + str(port))
        s.bind((host,port))
        s.listen(5)
    except socket.error as msg:
        print("Socket binding error: " + str(msg) + "\n" + "Retrying...")
        socket_bind()


def socket_accept():

    conn, address = s.accept()
    print("Connection has been established | " + "IP " + address[0] + "| Port " + str(address[1]))
    send_commands(conn)
    conn.close()


def send_commands(conn):

    while True:
        cmd = input()
        if cmd == 'quit':
            conn.close()
            s.close()
            sys.exit()
        if len(str.encode(cmd)) > 0:
            conn.send(str.encode(cmd))
            client_response = str(conn.recv(1024), "utf-8")
            print(client_response, end ="")

def main():

    socket_create()
    socket_bind()
    socket_accept()

main()