PDA

View Full Version : ارسال TMemoryStream با ClientSocket و ServerSocket



iman_Delphi7
پنج شنبه 09 خرداد 1387, 13:10 عصر
با عرض سلام و خسته نباشید خدمت اساتید محترم.
بنده یک سوال در زمینه برنامه نویسی شبکه داشتم.
می خواستم برنامه ای مثل Remote Admin بنویسم. یعنی کسی که پشت server نشسته بتونه مانیتور کلاینت ها رو ببینه و در صورت نیاز کنترل کنه.


برای این کار من از صفحه عکس میگیرم و برای اینکه حجم عکس کم شه اونو به JPG تبدیل می کنم و با دستور SaveToStream این عکس JPG رو به Stream تبدیل می کنم. متغیر Stream رو هم از نوع TMemoryStream تعریف می کنم.


بعد باید این Stream با ClientSocket به سرور فرستاده شه.
مشکل من همینجاست. من تونستم فایل رو با ClientSocket و ServerSocket انتقال بدم.
برای این کار هم از TFileStream استفاده کردم.


ClientSocket1.Socket.SendStream(TFileStream.Create (OpenDialog1.FileName, fmopenRead((


ولی برای ارسال TMemoryStream مشکل دارم. اگر هم بخوام عکس رو Save کنم و بعد اونو بفرستم، اونجوری سمت Server هم باید عکس رو Save کنم و بعد باز کنم که خیلی کند میشه.

وقتی من Stream ای که از عکس بدست آوردم رو میفرستم، ServerSocket ای که سمت سرور هست حتی وارد Event مربوطه یعنی ClientRead هم نمی شه. در صورتی که وقتی تو همون برنامه TFileStream رو میفرستم درست کار می کنه.

فکر کنم توضیحات کامل رو دادم.
اگر هم جایی مبهم بود بفرمائید تا جواب بدم.
لطفا اگه از دوستان کسی می دونه مشکل از کجاست راهنمایی کنه.
با تشکر قبلی.

p_zare
دوشنبه 18 آبان 1388, 09:53 صبح
منهم دنباله جوابش میگردم - ممنون