|
Mr.Pihto ↓
|
 |
|
30 Сентябрь, 2010, 12:22:10
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
на компе сервер делает скрин и отсылает его клиенту на телефоне... только вот клиент его открыть не моежет...
сервер
import socket, win32api, win32con, bluetooth, time, StringIO
from PIL import ImageGrab, Image
srv = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
srv.bind(("",11))
srv.listen(3)
sock, addr = srv.accept()
output = StringIO.StringIO()
im = ImageGrab.grab().quantize(colors=2, method=0)
im.save(output, "PNG")
content = output.getvalue()
sock.send(content)
sock.close()
клиент
import appuifw, e32, socket, StringIO
from graphics import Image
sock = socket.socket(socket.AF_BT,socket.SOCK_STREAM)
sock.connect(("00:1f:81:00:00:01", 11))
buf = sock.recv(1024)
im = Image.new((240, 320))
im.clear(0xFFFFFF)
im = Image.open(StringIO.StringIO(buf))
im.save('E:\image.jpg')
sock.close()
ошибка вылетает на строке im = Image.open(StringIO.StringIO(buf))
чето там SymbianError: [Errno -28] KErrBadName
как вообще это правильно сделать? как принимать полную картинку независимо от её размера?
|
|
|
|
|
Записан
|
|
|
|
|
ivanscm ↓
|
 |
|
30 Сентябрь, 2010, 02:52:07 , спустя 2 часа 29 минут 57 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Синий властилин
Группа: Джедаи Карма: 0
Сообщений: 1123 Сила слова: 0
|
посылать отдельно размер :))
|
|
|
|
|
Записан
|
|
|
|
|
adw0rd ↓
|
 |
|
30 Сентябрь, 2010, 04:40:46 , спустя 1 час 48 минут 39 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: в ухо Карма: не нужна
Сообщений: 17629 Сила слова: 1.67
|
Image.open() принимает название файла?
|
|
|
|
|
Записан
|
|
|
|
|
Mr.Pihto ↓
|
 |
|
30 Сентябрь, 2010, 07:58:29 , спустя 3 часа 17 минут 43 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
adw0rd, да... я просто незнаю как реализовать все это.. прошу помощи..
|
|
|
|
|
Записан
|
|
|
|
|
adw0rd ↓
|
 |
|
30 Сентябрь, 2010, 09:11:55 , спустя 1 час 13 минут 26 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: в ухо Карма: не нужна
Сообщений: 17629 Сила слова: 1.67
|
А ты кму название файла передаешь? Посмотри как еще можно передавать
|
|
|
|
|
Записан
|
|
|
|
|
Mr.Pihto ↓
|
 |
|
30 Сентябрь, 2010, 11:44:26 , спустя 2 часа 32 минуты 31 секунду
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
где посмотреть.. у графикс.имейдж есть только 3 функции new, open и ещё какаято шляпа.. функции принимающей объект я не нашёл
|
|
|
|
|
Записан
|
|
|
|
|
adw0rd ↓
|
 |
|
01 Октябрь, 2010, 12:31:10 , спустя 46 минут 44 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: в ухо Карма: не нужна
Сообщений: 17629 Сила слова: 1.67
|
где посмотреть
ну хотябы через dir() или через help()
import Image
dir(Image)
help(Image)
|
|
|
|
|
Записан
|
|
|
|
|
Mr.Pihto ↓
|
 |
|
01 Октябрь, 2010, 10:34:48 , спустя 10 часов 3 минуты 38 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
чето я не вижу там функции принимающей файловый объект..
|
|
|
|
|
Записан
|
|
|
|
|
Mr.Pihto ↓
|
 |
|
01 Октябрь, 2010, 02:56:47 , спустя 4 часа 21 минуту 59 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
сделал так:
сервер
import socket, threading, win32api, win32con, bluetooth, time
from PIL import ImageGrab, Image
srv = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
srv.bind(("",11))
srv.listen(3)
sock, addr = srv.accept()
im = ImageGrab.grab().quantize(colors=2, method=1)
im.save('C:\\temp.png', 'PNG')
f = open('C:\\temp.png', 'rb')
while 1:
blk=f.read(1024)
if not blk:
break
sock.send(blk)
time.sleep(0.2)
f.close()
print 'file transfer done';
sock.close()
клиент
import appuifw, e32, socket, StringIO
from graphics import Image
sock = socket.socket(socket.AF_BT,socket.SOCK_STREAM)
sock.connect(("00:1f:81:00:00:01", 11))
f=open('E:\\temp.png','wb')
while 1:
data=sock.recv(1024)
if not data:
break
f.write(data)
f.close()
print 'file received'
sock.close()
все работает вот только в клиенте после команды sock.recv(1024) вылетает ошибка и программа так и не доходит до print 'file received'
ошибка длинная... в конце написано
data=self._sock.recv(n, f, cb)
error:(32, 'Broken pipe')
|
|
|
|
« Последнее редактирование: 01 Октябрь, 2010, 02:56:47 от Mr.Pihto »
|
Записан
|
|
|
|
|
adw0rd ↓
|
 |
|
01 Октябрь, 2010, 06:04:18 , спустя 3 часа 7 минут 31 секунду
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: в ухо Карма: не нужна
Сообщений: 17629 Сила слова: 1.67
|
чето я не вижу там функции принимающей файловый объект..
я не знаю что за graphics.Image ты используешь, а PIL не подходит? Спустя 2 минуты 6 секунд добавил Если вместо
while 1:
data=sock.recv(1024)
if not data:
break
f.write(data)
f.close()
сделать
data=sock.recv(1024)
if not data:
break
f.write(data)
f.close()
то вылетает ошибка? Если нет, то передавай вместо 1024 - корретное число Спустя 26 секунд добавил зы. с сокетами в питоне не приходилось работать, подсказываю чисто логически
|
|
|
|
|
Записан
|
|
|
|
|
Mr.Pihto ↓
|
 |
|
02 Октябрь, 2010, 12:48:45 , спустя 6 часов 44 минуты 27 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
чето я не вижу там функции принимающей файловый объект..
я не знаю что за graphics.Image ты используешь, а PIL не подходит?
в pys60 нет библиотеки PIL
|
|
|
|
|
Записан
|
|
|
|
|
Mr.Pihto ↓
|
 |
|
02 Октябрь, 2010, 12:57:02 , спустя 8 минут 17 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
while 1:
data=sock.recv(1024)
if not data:
break
f.write(data)
f.close()
сделать
data=sock.recv(1024)
if not data:
break
f.write(data)
f.close()
то вылетает ошибка? Если нет, то передавай вместо 1024 - корретное число Спустя 26 секунд добавил зы. с сокетами в питоне не приходилось работать, подсказываю чисто логически
да, так ошибка не вылетает... корректное число это как?
|
|
|
|
|
Записан
|
|
|
|
|
adw0rd ↓
|
 |
|
02 Октябрь, 2010, 01:03:59 , спустя 6 минут 57 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: в ухо Карма: не нужна
Сообщений: 17629 Сила слова: 1.67
|
например всего у тебя 100 байт, а ты требуешь 1024 байт
надо просить 100 байт, для этого надо знать сколько у тебя байт весит файл
|
|
|
|
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
02 Октябрь, 2010, 10:12:39 , спустя 9 часов 8 минут 40 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 344
Сообщений: д-о-х-у-я! Сила слова: 1.65
|
например всего у тебя 100 байт, а ты требуешь 1024 байт
надо просить 100 байт, для этого надо знать сколько у тебя байт весит файл
сокеты не так работают мих, 1024 в данном случае - МАКСИМАЛЬНОЕ количество байт. а сколько придет - столько придет. хотя может в питоне по другому реализована логика сокетных приложений, но не думаю что они чтото новое придумали :D ибо смысла не имеет изобретательство в данном случае)
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
adw0rd ↓
|
 |
|
02 Октябрь, 2010, 11:01:07 , спустя 48 минут 28 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: в ухо Карма: не нужна
Сообщений: 17629 Сила слова: 1.67
|
Скорее всего ты прав, но проверять не буду :)
|
|
|
|
|
Записан
|
|
|
|
|