Главная страница
    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.061 c
2-1271083878
Б
2010-04-12 18:51
2010.08.27
Как удалить объект по ссылке.


15-1269725402
Юрий
2010-03-28 00:30
2010.08.27
С днем рождения ! 28 марта 2010 воскресенье


2-1269205855
AntonioBanderas
2010-03-22 00:10
2010.08.27
Роли FireBird(2.1.3)


15-1272622758
JohnKorsh
2010-04-30 14:19
2010.08.27
Как определить, какая программа использует файл.


15-1268757953
Б
2010-03-16 19:45
2010.08.27
Delphi 2011. Fulcrum.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский