Форум сайта python.su
0
Приветствую коллеги!
Я только начал изучать питон (вообще пишу на сишнике), времени нет разбираться, поэтому прошу помощи в вас, не работает клиент-серверное приложение, в силу того что с типами данных на питоне я не плотно знаком ошибку не могу исправить:
Traceback (most recent call last):
File “C:\Python33\client.py”, line 7, in <module>
sock.send(string.ascii_letters(“polindrom”))
TypeError: ‘str’ object is not callable
#server
import socket
hst = "127.0.0.1"
port = 333
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((hst, port))
while 1:
print ("port" + str(port))
sock.listen(1)
client, addr = sock.accept()
while 1:
print("connect from: " + str(addr))
buff = client.recv(1024)
if not buff:
break
print ("data is: %s %s", addr, buff)
sock.close()
#client
import socket,string
HOST = "127.0.0.1"
PORT = 333
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((HOST, PORT))
sock.send(string.ascii_letters("polindrom"))
sock.close()
print ("end: s")
Отредактировано kocmoc (Март 7, 2013 08:01:14)
Офлайн
75
Если что то тебе прямо говорят что ты хочеш строку использовать как функцию. Вроде
b = "str"
b()
Офлайн
0
SingularityЫЫ спасибо, а я то думал при чем тут: строковый объект не может вызываться
Если что то тебе прямо говорят что ты хочеш строку использовать как функцию. Вроде

sock.send("polindrom")
TypeError: 'str' does not support the buffer interfaceОфлайн
0
Спс за внимание, с одним покончил, если кому интересно проблема была в типе данных, дело в том что send принимает массив байтов, а я передавал строку(хотя это тоже массив байт правда типы разные, вот такой вот каламбур
), надо так:
sock.send(b"polindrom")
Отредактировано kocmoc (Март 7, 2013 12:11:56)
Офлайн
2
Кстати если ли в питоне что то подобное switch?Только elif
Офлайн