Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Ошибка при передачи данных по TCP протоколу   Найти похожие ветки 

 
NBAH1990   (2010-03-07 20:13) [0]

Программа делает скриншот экрана и по TcpClient отправляет картинку в Packed record, далее её принимает TcpServer и выводит на Timage. Всё отлично работает, когда клиент и сервер находятся в одном приложении (на одной форме).

http://www.rapidshare.ru/1403795

Но когда я разделил их в 2 приложения, на серверную часть доходят пустые пакеты, либо вообще не доходят. На клиентской части данные правильно записываются в пак, т.к я проверил это сохранением в файл. Проблема именно на сервере. Вот исходник сервера и клиента

http://www.rapidshare.ru/1403801

Стою в тупике, просто нет никаких идей. В исключения антивирусника (NOD32 4) добавил, брэндмауер отключен.
Помогите плиз.


 
Германн ©   (2010-03-08 01:01) [1]


> Но когда я разделил их в 2 приложения

Пробовал эти приложения на одном и том же компьютере?


 
NBAH1990   (2010-03-08 05:42) [2]

Только на одном и пробовал, даже так не заработали. На разных даже пробовать не стал.


 
CrytoGen   (2010-03-08 06:57) [3]

packed record приведи
а то поди передаёшь чего нибудь типа TImage


 
Anatoly Podgoretsky ©   (2010-03-08 08:57) [4]

> NBAH1990  (07.03.2010 20:13:00)  [0]

А что там по ссылкам?
И в читаемом ли виде?


 
NBAH1990   (2010-03-08 15:24) [5]

Пак вот такой

pack=packed record
   kar:TJPEGImage;
   hv:string[15];
 end;


Var buf:pack;

Вот так передаю

Client1.WriteBuffer(buf,SizeOf(buf));

Читаю вот так

AThread.Connection.ReadBuffer(bufpr,SizeOf(bufpr));

А разве TJpeg как то не корректно передаётся? А как его тогда передавать? В виде файла не предлагать, слишком медленно.)


 
Игорь Шевченко ©   (2010-03-08 15:44) [6]


> А разве TJpeg как то не корректно передаётся?


а объекты вообще некорректно передаются.


> А как его тогда передавать?


Самое простое - в виде файла.


> В виде файла не предлагать, слишком медленно


Всем нелегко


 
Вася   (2010-03-08 16:08) [7]


> В виде файла не предлагать, слишком медленно.)


Зато в виде адреса (чем по сути является kar:TJPEGImage) - быстро. Правда на другом компьютере этот адрес врядли представляет сколько-нибудь интересную информацию
Так что можно выбирать, как лучше - быстро, или чтобы работало


 
Anatoly Podgoretsky ©   (2010-03-08 16:10) [8]

> Вася  (08.03.2010 16:08:07)  [7]

Так ничего и не передается.


 
Юрий Зотов ©   (2010-03-08 17:41) [9]

> NBAH1990   (08.03.10 15:24) [5]

Поле kar:TJPEGImage передается, как адрес объекта. Понятно, что по этому адресу в ДРУГОЙ программе находится не нужный объект, а что-то совсем другое. Возможно, что и вовсе ничего не находится.

На другой машине - тем более.


 
CrytoGen   (2010-03-08 18:22) [10]

сохрани в MemoryStream, а из него получи буфер, буфер передай по tcp, потом обратно в MemoryStream и читай из него jpeg


 
NBAH1990   (2010-03-08 18:47) [11]


> сохрани в MemoryStream, а из него получи буфер, буфер передай
> по tcp, потом обратно в MemoryStream и читай из него jpeg


Буду признателен если покажете на примере)


 
Anatoly Podgoretsky ©   (2010-03-08 19:15) [12]

> Юрий Зотов  (08.03.2010 17:41:09)  [9]

Но зато быстро!


 
NBAH1990   (2010-03-08 19:32) [13]

var ms:TMemoryStream;
   jp:TJPEGImage;
begin
 Screenshot;
 ms:=TMemoryStream.Create;
 buf.kar.SaveToStream(ms);
 jp:=TJPEGImage.Create;
 jp.LoadFromStream(ms);
 jp.SaveToFile("1.jpg");
end;


Сохраняется пустой файл =((


 
Anatoly Podgoretsky ©   (2010-03-08 20:22) [14]

> NBAH1990  (08.03.2010 19:32:13)  [13]

ms.position


 
NBAH1990   (2010-03-08 21:13) [15]


> ms.position


Что это значит?


 
Плохиш ©   (2010-03-08 21:16) [16]


> NBAH1990   (08.03.10 21:13) [15]
>
>
> > ms.position
>
>
> Что это значит?

Что все операции с данными потока производятся от текущей позиции.


 
NBAH1990   (2010-03-08 21:31) [17]

А как определить позицию?

var ms:TMemoryStream;
  jp:TJPEGImage;
begin
Screenshot;
ms:=TMemoryStream.Create;
buf.kar.SaveToStream(ms);
jp:=TJPEGImage.Create;
jp.LoadFromStream(ms);
jp.SaveToFile("1.jpg");
end;


 
NBAH1990   (2010-03-08 21:37) [18]

var ms:TMemoryStream;
   jp:TJPEGImage;
begin
  Screenshot;
  ms:=TMemoryStream.Create;
  buf.kar.SaveToStream(ms);
  jp:=TJPEGImage.Create;
  ms.Position;
  jp.LoadFromStream(ms);
  jp.SaveToFile("1.jpg");
  jp.Free;
  ms.Free;
end;

Не работает так)) ТАк и не придумал куда привинтить этот позишн. Дайте кто нить полный ответ плиз


 
NBAH1990   (2010-03-08 21:39) [19]

var ms:TMemoryStream;
   jp:TJPEGImage;
begin
  Screenshot;
  ms:=TMemoryStream.Create;
  buf.kar.SaveToStream(ms);
  jp:=TJPEGImage.Create;
  ms.Position:=0;
  jp.LoadFromStream(ms);
  jp.SaveToFile("1.jpg");
  jp.Free;
  ms.Free;
end;


Во вот так получилось)) Сам допёр, теперь по сети попробую.


 
Anatoly Podgoretsky ©   (2010-03-08 22:06) [20]

> NBAH1990  (08.03.2010 21:39:19)  [19]

Не надо допирать, надо в справке смотреть.


 
DVM ©   (2010-03-08 22:58) [21]


> NBAH1990   (07.03.10 20:13) 

http://delphimaster.net/view/6-1227604925/ смотри пример от slym


 
nikih22 ©   (2010-03-09 06:07) [22]

NBAH1990 Вижу делаешь программу уделенного администрарования?


 
nikih22 ©   (2010-03-09 06:11) [23]

Если есть желание обьединиться пиши на почту!!!!



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.53 MB
Время: 0.062 c
2-1268654563
Thesis
2010-03-15 15:02
2010.08.27
Битовая логика


15-1264942022
Константинов
2010-01-31 15:47
2010.08.27
Безопасность ПК


4-1221129469
kalexi
2008-09-11 14:37
2010.08.27
Как загрузить BMP в массив?


15-1265146204
Юрий
2010-02-03 00:30
2010.08.27
С днем рождения ! 3 февраля 2010 среда


2-1268641701
Alexsis f
2010-03-15 11:28
2010.08.27
От Delphi 7 к Delphi 2010





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский