View Full Version : ارسال و دریافت object درشبکه
vahid_1360
چهارشنبه 08 تیر 1390, 20:58 عصر
با سلام
می خواهم یک شی را تحت جابجا کنم و دارم از serversoket و clientsocket استفاده می کنم.
چند ماه دارم تلاش میکنم ولی نتیجه نمیگرم
کسی می تواند کمک کند.
بسیار ممنون
Felony
چهارشنبه 08 تیر 1390, 23:21 عصر
چند ماهه چه تلاشی میکنید که نتیجه نمیگیرید ؟!
کافیه شئ مورد نظر رو به صورت یک ResourceStream در یک MemoryStream ذخیره کنید و بعد به سیستم مورد نظر ارسال کنیدش ، چیزی شبیه این :
var
Control: TMemoryStream;
begin
Control := TMemoryStream.Create;
try
Control.WriteComponentRes('MyButton', BTN_Conenct);
IdTCPClient1.IOHandler.Write(Control);
finally
Control.Free;
end;
تو سیستم مقصد هم باید بعد از دریافت اون رو داخل یک MemoryStream بریزید بعد ازش استفاده کنید ( کلاس شئ دریافت شده رو رجیستر کنید و شی رو ایجاد کنید ) ، مثلا در کد زیر من حجم شئ دریافتی رو نمایش دادم ( در رویداد Execute شئ idTCPServer ) :
var
Control: TMemoryStream;
begin
Control := TMemoryStream.Create;
try
AContext.Connection.Socket.ReadStream(Control);
ShowMessage(IntToStr(Control.Size));
finally
Control.Free;
end;
end;
دیگه حوصله نداشتم کد کامل دریافت شئ رو بنویسم ، ولی روند کلی کار رو براتون توضیح دادم اگر مشکلی بود بپرسید .
vahid_1360
شنبه 11 تیر 1390, 08:59 صبح
سلام
ممنون که با بی حوصلگی ای که داشتید جواب دادید.
من از Socket استفاده میکنم. از writecomponent در MemoryStream استفاده می کردم.
در Socket یک SendStream هست که ظاهرا server آنرا Read نمی کند،یک sendbuffer دارم که آنطرف یا می گویدInvalid Stream Format ویا Access violation می دهد.
شاید استفاده ام از Socket اشتباه هست و باید مثلا از Indy استفاده کنم.
خلاصه آنکه از جندماه گشتنم بسادگی متوجه می شوید که تحت شبکه تابحال کار نکردم.
از هرکمکی (مقاله،source،راهنمایی) ممنون می شوم. شاید پیش ما جای دوری بره اما پیش خدا می ماند انشاءالله.
یاعلی
Mask
شنبه 11 تیر 1390, 20:18 عصر
چه اصراری دارید که مستقیما با سوکت ها کار کنید.
به نظر من بهتره روشه کار رو به سمت indy بیارید. چون هم راحتتره هم واضح تر.
vahid_1360
یک شنبه 12 تیر 1390, 09:01 صبح
سلام
من اصراری ندارم. با این آشناتر بودم.مشکلی نیست Indy کار میکنم.
ولی موقع تبدیل Stream به Object خطای Invalid Stream Format می دهد.
vahid_1360
پنج شنبه 16 تیر 1390, 11:24 صبح
سلام
از دوستان برنامه نویس کسی کمکی نمی کند
vahid_1360
شنبه 25 تیر 1390, 11:38 صبح
سلام
برام جالبه تا حالا 5 تا سوال پرسیدم هیچ کس جواب نداده چرا نمی دونم؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.