Найти - Пользователи
Полная версия: сокеты клиент-сервер
Начало » Python для новичков » сокеты клиент-сервер
1
kocmoc
Приветствую коллеги!
Я только начал изучать питон (вообще пишу на сишнике), времени нет разбираться, поэтому прошу помощи в вас, не работает клиент-серверное приложение, в силу того что с типами данных на питоне я не плотно знаком ошибку не могу исправить:
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")
Соединение проходит, но дальше сервак висит пока аварийно не завершить клиент….
В чем проблема?
Спс!
ЗЫ на string.ascii_letters(“polindrom”) не обращайте внимания я тут эксперементировал, и пытался передать строковые типы т.к. ругается именно на эту строку: TypeError: ‘str’ object is not callable
Singularity
Если что то тебе прямо говорят что ты хочеш строку использовать как функцию. Вроде
b = "str"
b()
Попробуй выполнить этот код, ошибка будет таже.
kocmoc
Singularity
Если что то тебе прямо говорят что ты хочеш строку использовать как функцию. Вроде
ЫЫ спасибо, а я то думал при чем тут: строковый объект не может вызываться
тогда такая ошибка:
    sock.send("polindrom")
TypeError: 'str' does not support the buffer interface
kocmoc
Спс за внимание, с одним покончил, если кому интересно проблема была в типе данных, дело в том что send принимает массив байтов, а я передавал строку(хотя это тоже массив байт правда типы разные, вот такой вот каламбур ), надо так:
 sock.send(b"polindrom")
Кстати если ли в питоне что то подобное switch?
mironich
Кстати если ли в питоне что то подобное switch?
Только elif
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB