2017-02-20 13 views
0

EDIT в формате:Я получаю эту ошибку "TypeError: ул() принимает не более 1 аргумент (2 дано)" на "client_response" переменной

Это исходный код

from __future__ import print_function 
import socket 
import sys 

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 = raw_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_accept() 
    main() 

I я получаю эту ошибку «TypeError: ул() принимает не более 1 аргумент (2 дано)» на «client_response» переменной

+0

Отформатируйте свой код и объясните, что вы пытаетесь сделать и каков ожидаемый результат. –

+0

Итак, сделайте это сейчас –

ответ

4

у вас есть ошибка здесь:

client_response = str(conn.recv(1024), "utf-8") 

Просто измените его:

client_response = str(conn.recv(1024)).encode("utf-8") 
+0

у вас есть несоответствующие скобки в вашем _solution_ –

+1

Справа, исправлено –

+0

Решено ли это, что вы решили? –

2

На второй к последней строке вы передаете два аргумента функции str, хотя функция str принимает только один аргумент в Python 2. Это на самом деле взять вверх три аргумента в Python 3

https://docs.python.org/2.7/library/functions.html?highlight=str#str https://docs.python.org/3.6/library/functions.html?highlight=str#str

Так что вы либо пытаетесь inadvertaetly запустить Python 3 кода в интерпретатор Python 2 или вы смотрите на документации неверном языке.

Так что либо используйте ответ @ franciscosolimas, если вы используете python 2, либо убедитесь, что используете python 3, если вы также можете добавить аргумент ключевого слова, чтобы убедиться, что знаете, что происходит в будущее

client_response = str(conn.recv(1024), encoding="utf-8") 
+0

Если это так, как я могу решить свою проблему? –

 Смежные вопросы

  • Нет связанных вопросов^_^