PDA

مشاهده نسخه کامل : به اشتراک گذاری فایل های متنی با دات نت



ravegoat
25-08-08, 21:28
با سلام!

در این تاپیک به بررسی این موضوع می پردازیم که چگونه می توانیم داده های متنی را با استفاده سی شارپ و ویژوال بیسیک دات نت در طول شبکه منتقل کنیم.

برای ارتباطات تحت شبکه می توانیم از کلاس System.Net استفاده کنیم.

در فایل زیر یک کد سی شارپ همراه با توضیحات انگلیسی قرار داده شده است که از کلاس فوق برای به اشتراک گذاری یک فایل متنی استفاده کرده است:

دانلود (Only the registered members can see the link)

لینک مستقیم - فایل RAR
105 کیلوبایت

این کد CS دارای دو بخش است، یکی بخش سرور که فایل را به اشتراک می گذارد و بخش کلاینت که یک درخواست به سرور می فرستد و فایل را دریافت می کند.

بنده این کد CS را در VB.Net تعمیم دادم. به گونه ای که دو برنامه ی کامیپایل شده با سورس VB.Net 2008 به نام های FileSharingServer و FileSharingClient در این فایل قرار دارند:


برنامه ی FileSharingServer، فایل متنی دلخواه شما را بر روی شبکه به اشتراک می گذارد. اما این فایل برای هر رایانه ای قابل دسترس نخواهد بود چون شما تعیین می کنید که کدام آدرس IP حق دریافت فایل را دارد. علاوه بر آن شما باید تعیین کنید که برنامه روی کدام پورت Tcp منتظر بماند. وقتی سرور آغاز به کار کند منتظر یک درخواست از IP مورد نظر می ماند. هر وقت درخواستی از آن IP دریافت نمود، به شما اطلاع می دهد که آیا می خواهید فایل به اشتراک گذاشته شده برای آن رایانه فرستاده شود؟ در صورت مثبت بودن پاسخ فایل فرستاده می شود.

برنامه ی FileSharingClient، آدرس IP و شماره ی پورت Tcp در حال انتظار آن IP را از شما می گیرد. سپس برنامه به سرور وصل شده و درخواست فایل اشتراکی می کند. اگر سرور شما را مجاز دانست، فایل را برایتان ارسال می کند و برنامه فایل متنی ارسالی در مسیر دلخواه شما ذخیره می کند.


نکته: دلیل این که این کد ها فقط می توانند فایل متنی را به اشتراک بگذارند این است که از StreamWriter استفاده می شود و StreamWriter نمی تواند فایل های از Coding استفاده می کنند را ایجاد کند. مثلا با StreamWriter می توان یک فایل HTML ایجاد کرد اما نمی توان یک فایل JPG ایجاد نمود!


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

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

اگر در اجرای سورس ها و یا تحلیلشان (چه CS وچه VB.Net) مشکلی داشتید در خدمتم.


با سپاس
آرمین:11():