PDA

View Full Version : مبتدی: ارسال فایل از طریق شبکه



Collector
جمعه 05 اسفند 1390, 20:48 عصر
سلام

در تاپیک (http://barnamenevis.org/showthread.php?307108-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%A7%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%85%D8%A7%D9%86%DB%8C%D8%AA%D9%88%D8%B1%DB%8C%D 9%86%DA%AF-%DA%A9%D9%84%D8%A7%DB%8C%D9%86%D8%AA-%D9%87%D8%A7/page4&highlight=socket+%D8%B9%DA%A9%D8%B3+%D9%85%D8%A7%D 9%86%DB%8C%D8%AA%D9%88%D8%B1%DB%8C%D9%86%DA%AF)پ ت 35 مربوط به ارسال عکس از طریق شبکه هست.
من خواستم با Serilaze (http://barnamenevis.org/showthread.php?95001-1001-%D9%86%DA%A9%D8%AA%D9%87-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE&p=472315#post472315) کردن فایل را بفرستم اما نشد.
ممکنه راهنمایی کنید.

zarrinnegar
جمعه 05 اسفند 1390, 23:06 عصر
منظورت از این کار چیه؟
میخوای بصورت باینری فایل رو بفرستی؟
کجا بفرستی؟ توی دیتابیس؟
یا میخواهی که دانلود آپلود فایل توی شبکه راه اندازی کنی ؟

Collector
شنبه 06 اسفند 1390, 13:12 عصر
منظورت از این کار چیه؟
میخوای بصورت باینری فایل رو بفرستی؟
کجا بفرستی؟ توی دیتابیس؟
یا میخواهی که دانلود آپلود فایل توی شبکه راه اندازی کنی ؟

اگر آن تاپیک را نگاه میکردید متوجه میشدید.
من به جای ارسال آن عکس میخوام هر فایلی را ارسال/دریافت کنم.

REZAE2011
شنبه 06 اسفند 1390, 14:56 عصر
سلام

من به جای ارسال آن عکس میخوام هر فایلی را ارسال/دریافت کنم.

شما برای ارسال (هر چیزی در شبکه) باید آن داده ها را تبدیل به آرایه بایت کنید و بعد آن آرایه را با متد send ارسال کنید . و برای دریافت هم متد receive یک آرایه بایت به عنوان ورودی می گیرد وقتی که این آرایه بایت توسط متد receive پر شد باید بایت های این آرایه را در ذخیره کنید بدون هیچ تغیر و تبدیلی در بایت های دریافتی.

Collector
شنبه 06 اسفند 1390, 15:16 عصر
سلام


شما برای ارسال (هر چیزی در شبکه) باید آن داده ها را تبدیل به آرایه بایت کنید و بعد آن آرایه را با متد send ارسال کنید . و برای دریافت هم متد receive یک آرایه بایت به عنوان ورودی می گیرد وقتی که این آرایه بایت توسط متد receive پر شد باید بایت های این آرایه را در ذخیره کنید بدون هیچ تغیر و تبدیلی در بایت های دریافتی.

ممنون که پاسخ دادید.
نیازی به استفاده از بایت نیست.
اگر ممکنه آن برنامه را دانلود کنید.

ارسال عکس به صورت Serialize
BinaryFormatter formatter = new BinaryFormatter();
Bitmap bit1 = new Bitmap(Class1.MakeGrayscale(CaptureScreen()));
formatter.Serialize(Client.GetStream(), bit1 );
Client.Client.Disconnect(true);

من این را نوشتم ولی جواب نداد (البته در server هم Deserialize)

BinaryFormatter formatter = new BinaryFormatter();
Stream stream = File.Open(@"C:\1.pdf", FileMode.Open);
formatter.Serialize(Client.GetStream(), stream);
Client.Client.Disconnect(true);

REZAE2011
شنبه 06 اسفند 1390, 16:07 عصر
سلام
دوست من برای دریافت هرداده ای از شبکه حتی یک فایل دودویی این کد در لینک زیر (پست دوم) استفاده کن :http://barnamenevis.org/showthread.php?328971-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%DB%8C%DA%A9-%D8%B9%DA%A9%D8%B3-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%B3%D9%88%DA%A9%D8%AA-%D9%BE%D8%B1%D9%88%DA%AF%D8%B1%D9%85%DB%8C%D9%86%D A%AF&p=1447317#post1447317
و برای ارسال هم در همان لینک پست اول را استفاده کن.

و برای اینکه در ارسال و دریافت. برنامه هنگ نکنه از نخ استفاده کن.
من خودم از این کد ها برای کار با شبکه استفاده می کنم.
موفق باشید.

REZAE2011
شنبه 06 اسفند 1390, 16:26 عصر
ببخشید
مثله این که در تاپیکی که شما معرفی کردید
در تاپیک پست 35 مربوط به ارسال عکس از طریق شبکه هست.
از کلاس TCPclient -TCPlistner برای کار با شبکه استفاده شده ولی لینکی که من درپست قبلی ارسال کردم از کلاس Socket برای کار با شبکه استفاده کردم .اگه با کلاس socket آشنا نیستی بگو توضیح بدم.

Collector
شنبه 06 اسفند 1390, 16:57 عصر
ببخشید
مثله این که در تاپیکی که شما معرفی کردید
از کلاس TCPclient -TCPlistner برای کار با شبکه استفاده شده ولی لینکی که من درپست قبلی ارسال کردم از کلاس Socket برای کار با شبکه استفاده کردم .اگه با کلاس socket آشنا نیستی بگو توضیح بدم.

فکر کنم با TCPclient -TCPlistner بشود این کار را انجام داد .
دلیل این که از کلاس Socket استفاده نمیکنم این هست که حجم فایل را نمیدانم.
و به طور کلی کار کردن با TCPclient -TCPlistner راحت تر هست.
تگر ممکنه فقط شما بگیر که چه کار کنم تا بتوان هر فایلی را فرستاد و فقط برای عکس نباشد.