Просветите пожалуйста. Есть скрипт сервер и клиент, соединение через сокет. Серверная часть работает на Виндовс XP. Суть проблемы скрипт клиент полностью работает только под виндой ХР, под Линуксом появляется ошибка. Сразу оговорюсь, думаю, что проблема в линуксе, каоето ограничение, так как с разных машин получаю один и тотже размер 1448. Привожу пример:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('192.168.0.24', 54917))
print 'Serv on address: ', s.getpeername()
for i in range(3):
content = s.recv(300000)
print len(content)
ima=Image.open(StringIO.StringIO(content)).quantize(colors=96, method=1)
Serv on address: ('192.168.0.24', 54917)
1448
Traceback (most recent call last):
File "/media/truecrypt1/socket_client.py", line 20, in <module>
ima=Image.open(StringIO.StringIO(content)).quantize(colors=96, method=1)
File "/usr/lib/python2.6/dist-packages/PIL/Image.py", line 717, in quantize
self.load()
File "/usr/lib/python2.6/dist-packages/PIL/ImageFile.py", line 198, in load
s = read(self.decodermaxblock)
File "/usr/lib/python2.6/dist-packages/PIL/PngImagePlugin.py", line 391, in load_read
cid, pos, len = self.png.read()
File "/usr/lib/python2.6/dist-packages/PIL/PngImagePlugin.py", line 96, in read
len = i32(s)
File "/usr/lib/python2.6/dist-packages/PIL/PngImagePlugin.py", line 44, in i32
return ord(c[3]) + (ord(c[2])<<8) + (ord(c[1])<<16) + (ord(c[0])<<24)
IndexError: string index out of range
Этот код нормально работет под виндой XP, под Ububtu 10.04 c выше описанной ошибкой. В обоих случаях Python 2.6.