Работа с сокетами в python 2.7, и я столкнулся с ошибкой типа следующим образом:
TypeError: приведение к Unicode: нужна строка или буфер, экземпляр найден.
Я уверен, что это как-то связано с различиями между python2 и python3 с точки зрения юникода.Но я не достаточно знаком с различиями, чтобы сузить, как решить проблему.Я уверен, что знаю, где проблема, но я не смог помочь мне в поиске решения.Вот фрагмент кода, с которым у меня проблемы.
from IPy import IP
ip = IP(sys.argv[1])
for x in ip:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
svr = (x, 25)
s.connect(svr)
data = s.recv(2048)
s.close()
print(repr(data))
Вот точная распечатка ошибки:
Traceback (most recent call last):
File "relayscanner.py", line 17, in <module>
s.connect(tgt)
File "C:\Python27\lib\socket.py", line 222, in meth
return getattr(self._sock,name)(*args)
TypeError: coercing to Unicode: need string or buffer, instance found