برنامه نویسی شبکه - نسخهی قابل چاپ صفحهها: ۱ ۲ |
برنامه نویسی شبکه - mosaferkuchulu - 23 تیر ۱۳۹۱ ۱۱:۴۱ ق.ظ
سلام بچه ها من یه سوال اساسی برام یش اومده!اگر من بخوام واسه شبکه برنامه نویسی کنم آیا تو زبان های مختلف متد های خاص بای این کار وجود داره؟مثلا تو جاوا API متد هایی هست که مخصوص این کا باشه یا اینکه نه! اصلا برنامه نویسی واسه شبکه فزقی هم با برنامه های عادی داره؟ |
RE: برنامه نویسی شبکه - HighVoltage - 23 تیر ۱۳۹۱ ۱۲:۰۴ ب.ظ
سلام برای برنامه نویسی توی شبکه شما باید برنامه نویسی سوکت رو اول یاد بگیرید که بتونید بین اجزای شبکه ارتباط برقرار کنید. مثلا برای نوشتن یه برنامه چت ساده شما باید یه سوکت تعریف کنید که داده رو ارسال کنه (سوکت سرور) و یک سوکت دریافت کننده (سوکت کلاینت) و از سرور برای کلاینت ارسال کنید. Java.net تمام چیزی است که برای برنامه نویسی شبکه با جاوا احتیاج دارید ، مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید. رو ببینید فکر کنم کارتون رو راه می اندازه. |
برنامه نویسی شبکه - mrousta - 23 تیر ۱۳۹۱ ۱۲:۲۱ ب.ظ
سلام من توی درس سیستم های توزیع شده یه چندتا پروژه نوشتم که باید از برنامه نویسی شبکه مثل:همین سوکت پروگرمینگ و یه برنامه دیگه به اسم Web Service استفاده می کردیم، Web Service خیلی راحت تره فقط به شرطی که قبلا کار کرده باشی هر چی گشتم که چندتا پروژه رو اینجا براتون بذارم متاسفانه پیدا نکردم،فقط داکیومنتش رو داشتم که فقط همینا توش گفته شده بود(به زبان #C بود) و در مورد پروژه دیکشنری مبتنی بر شبکه است: شمای کلی یکی از این پروژه ها : در این پروژه یک سرور و چندین کلاینت مختلف داریم که اساس این برنامه بدین ترتیب است که کلاینت ها می توانند یک کلمه و معنی آن را به دیتابیس سرور اضافه کنند یا معنی یک کلمه را از طریق دیتابیس موجود در سرور جستجو کرده و معنی مورد نظر را برگرداند. برنامه سمت سرور: در فرم ویژوال این برنامه چندین بخش مختلف موجود می باشد که عبارتند از: یک GroupBox که بوسیله ی label موجود در آن IP سرور را از طریق دستور زیر نمایش می دهد: label1.Text = Dns.GetHostAddresses(Dns.GetHostName())[1].ToString(); و یک GroupBox به نام Demand word که در آن کلمه ای که از طرف کلاینت جهت جستجو در دیتابیس فرستاده شده است در textbox به نام Demand word از طریق دستور زیر نمایش داده می شود: clientsock.Receive(RecBuffer); string str = System.Text.Encoding.Default.GetString(RecBuffer); textBox1.Text = str; و یک GroupBox به نام AddToArchive وجود دارد که کلمه و معنی فرستاده شده از طرف کلاینت را دریافت کرده و کلمه را در TextBox به نام EnglishWord و معنی آن را در TextBox به نام Pesrian Word از طریق دستورات زیر نمایش می دهد: clientsock.Receive(RecBuffer); string str = System.Text.Encoding.Default.GetString(RecBuffer); if (str.Contains("#")) { string[] str2 = new string[2]; str2 = str.Split('#'); textBox2.Text = str2[0]; textBox3.Text = str2[1]; MessageBox.Show(str2[0] + " " + str2[1]); (دلیل استفاده از If در ادامه توضیح داده می شود.) در برنامه سمت سرور باید چندین عمل مختلف انجام شود که به صورت زیر می باشد: عملیات در سمت Server: IPEndPoint ipend = new IPEndPoint(IPAddress.Any, 5150); serversock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); serversock.Bind(ipend); serversock.Listen(100); CheckForIllegalCrossThreadCalls = false; trt = new Thread(new ThreadStart(Run_serv)); trt.Start(); در خط ۷ از کد فوق یک Thread تعریف شده و تابع Run-serv در خط بعد آن صدا زده شده است. تابع Run-serv به صورت زیر می باشد: void Run_serv() { while (true) { RecBuffer = new byte[4096]; clientsock = serversock.Accept(); Dictionary dic = new Dictionary(); while (true) { clientsock.Receive(RecBuffer); string str = System.Text.Encoding.Default.GetString(RecBuffer); if (str.Contains("#")) { string[] str2 = new string[2]; str2 = str.Split('#'); textBox2.Text = str2[0]; textBox3.Text = str2[1]; MessageBox.Show(str2[0] + " " + str2[1]); dic.Insert(textBox2.Text, textBox3.Text); } else { textBox1.Text = str; a = dic.Search(textBox1.Text); SendBuffer = System.Text.Encoding.Default.GetBytes(a); clientsock.Send(SendBuffer); } break; } clientsock.Close(); } -------------------------------------------------------------------- • Socket( ) تعریف ارتباط • Bind( ) به سوکتی که باز کرده یک آدرس پورت نسبت می دهیم • Listen( ) فضای لازم جهت ارسال و دریافت داده ها فراهم می کند • Accept( ) یکی از اتباطات معلق به برنامه معرفی می شود • Send( ) و Recv( ) مبادله داده ها • Close( ) و Shutdown( ) پایان ارتباط چندین تابع در برنامه سمت سرور موجود می باشد: ۱-تابعی برای اضافه کردن کلمه و معنی آن (Insert) که عملیات آن به شرح زیر می باشد: public void Insert(string en, string fa) { Monitor.Enter(this); if (buffer != 0) Monitor.Wait(this); buffer--; SqlCommand cmd = new SqlCommand("Insert Into Table3 Values('" + en + "','" + fa + "')", conn); conn.Open(); MessageBox.Show(conn.State.ToString()); cmd.ExecuteNonQuery(); conn.Close(); Monitor.Pulse(this); Monitor.Exit(this); buffer = 0; } و تابعی به نام search برای جستجوی معنی یک کلمه در دیتابیس سرور که عملیات آن به شرح زیر می باشد: public string Search(string en) { Monitor.Enter(this); if (buffer <0) Monitor.Wait(this); buffer++; SqlDataAdapter da = new SqlDataAdapter("Select * from Table3 where En='" + en + "'", conn); DataTable dt = new DataTable(); da.Fill(dt); Monitor.Pulse(this); Monitor.Exit(this); buffer--; if (dt.Rows.Count > 0) { return dt.Rows[0][1].ToString(); } return "Not Found !"; } برنامه سمت کلاینت: عناصر موجود در برنامه سمت کلاینت: یک TextBox جهت وارد کردن IP سرور یک GroupBox در سمت چپ فرم به نام Translate Word وجود دارد که کلمه ای که می خواهیم معنی آن را جستجو کنیم را در TextBox کنار label به نام Translate Your Word می نویسیم و با زدن Button پایین آن (Translate) کد های زیر اجرا شده و کلمه ی مورد نظر به سمت سرور فرستاده می شود تا معنی آن را جستجو کرده و برگرداند: private void button1_Click_1(object sender, EventArgs e) { MessageBox.Show("test"); RecBuffer = new byte[4096]; IPEndPoint ipend = new IPEndPoint(IPAddress.Parse(textBox1.Text.Trim()), 5150); //تعریف پورت ۵۱۵۰ برای برقراری ارتباط clientsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); clientsock.Connect(ipend); //while (textBox2.Text!="*") //{ sendbuffer1 = System.Text.Encoding.Default.GetBytes(textBox2.Text); clientsock.Send(sendbuffer1); clientsock.Receive(RecBuffer); textBox3.Text = System.Text.Encoding.Default.GetString(RecBuffer); //} clientsock.Close(); } عملیات انجام شده در کد های فوق به شرح زیر می باشد: • Socket( ) تعریف ارتباط • Connect( ) ارسال تقاضا • Send( ) و Recv( ) مبادله داده ها • Close( ) و Shutdown( ) پایان ارتباط در سمت راست یک GroupBox به نام UpdateDataBase وجود دارد که از آن جهت وارد کردن کلمه ی جدید و معنی آن استفاده می شود .که کلمه ی اصلی در TextBox اولی و معنی آن در TextBox دوم نوشته می شود. با زدن دکمه ی AddToArchieve قطعه کد زیر اجرا شده و هر دو کلمه بوسیله ی یک علامت"#"با هم ادغام شده تا برای سرور فرستاده شود: private void button2_Click(object sender, EventArgs e) { IPEndPoint ipend = new IPEndPoint(IPAddress.Parse(textBox1.Text.Trim()), 5150); clientsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); clientsock.Connect(ipend); sendbuffer2 = System.Text.Encoding.Default.GetBytes(textBox4.Text + "#" + textBox5.Text); clientsock.Send(sendbuffer2); clientsock.Close(); } |
برنامه نویسی شبکه - mosaferkuchulu - 23 تیر ۱۳۹۱ ۰۳:۴۸ ب.ظ
ممنون دوستان پروژه ی من که در واقع پایان نامه ی کاشناسیم هست اینه که یه گیت وی بین دو تا شبکه بنویسم و یکپارچه شون کنم! همچین برنامه ای و هم میشه با سوکت پروگرمینگ نوشت؟ |
RE: برنامه نویسی شبکه - HighVoltage - 24 تیر ۱۳۹۱ ۱۱:۲۱ ب.ظ
(۲۳ تیر ۱۳۹۱ ۰۳:۴۸ ب.ظ)mosaferkuchulu نوشته شده توسط: ممنون دوستانکمی بیشتر میتونید توضیح بدید? گیت V چی بود؟ کار نشد نداره. |
RE: برنامه نویسی شبکه - MSZ - 25 تیر ۱۳۹۱ ۱۲:۱۷ ق.ظ
(۲۴ تیر ۱۳۹۱ ۱۱:۲۱ ب.ظ)HighVoltage نوشته شده توسط:(23 تیر ۱۳۹۱ ۰۳:۴۸ ب.ظ)mosaferkuchulu نوشته شده توسط: ممنون دوستانکمی بیشتر میتونید توضیح بدید? گیت V چیه بابا؟!؟!!!! اونجا نوشته Gateway... گیت V تلفظ کردینش شما؟! |
RE: برنامه نویسی شبکه - HighVoltage - 25 تیر ۱۳۹۱ ۰۱:۵۹ ب.ظ
(۲۵ تیر ۱۳۹۱ ۱۲:۱۷ ق.ظ)MSZ نوشته شده توسط:به من چه Gateway رو فارسی نوشته؟(24 تیر ۱۳۹۱ ۱۱:۲۱ ب.ظ)HighVoltage نوشته شده توسط:(23 تیر ۱۳۹۱ ۰۳:۴۸ ب.ظ)mosaferkuchulu نوشته شده توسط: ممنون دوستانکمی بیشتر میتونید توضیح بدید? |
برنامه نویسی شبکه - mehrdad66 - 25 تیر ۱۳۹۱ ۰۲:۵۵ ب.ظ
برای شروع بهترین مرجع فصل ۶ کتاب مهندسی اینترنت احسان ملکیان هست توی این کتاب به دو زبان ++c و جاوا مبحث برنامه نویسی شبکه رو توضیح داده البته ار قبل باید مقدماتی درباره یک زبان برنامه نویسی بدونید تا بتونید مبحث برنامه نویسی شبکه رو انجام بدید توی سایت aghazeh.com بخش برنامه نویسی، کتابی هست با عنوان برنامه نویسی شبکه به زبان #c شاید بدردتون بخوره |
برنامه نویسی شبکه - mosaferkuchulu - 25 تیر ۱۳۹۱ ۰۶:۱۵ ب.ظ
بچه ها ممنون معذرت می خوام.منظورم همون gate way بود!ببخشید! من می خوام به جاوا بنویسم زبون مادریم جاواست نمی خوام با زبان های دیگه خودمو گیج کنم! من می خوام یه مترجم یا gateway بین دو تا شبکه ی متفاوت بذارم که بتونن دو تا شبکه با هم داده رد و بدل کنن!همین! احتمالا بشه با سوکت پروگمینگ نوشتش! می شه gateway رو سرور و شبکه ها رو کلاینت در نظر گرفت و از این طریق نوشتشون؟ |
RE: برنامه نویسی شبکه - mehrdad66 - 25 تیر ۱۳۹۱ ۰۸:۲۱ ب.ظ
(۲۵ تیر ۱۳۹۱ ۰۶:۱۵ ب.ظ)mosaferkuchulu نوشته شده توسط: بچه ها ممنون کتاب راهنمای برنامه نویسی جاوا نوشته دیتل-دیتل فصل ۲۷ بصورت کامل به برنامه نویسی شبکه تحت جاوا می پردازه و یک برنامه کلاینت سرور مینویسه و آخر فصل هم یه بازی شبکه ای بصورت کلاینت سرور درست میکنه |
برنامه نویسی شبکه - mosaferkuchulu - 26 تیر ۱۳۹۱ ۰۶:۴۹ ب.ظ
انگار این کاvی که من می خوام انجام بدم با سوکت نمی شه!چون سوکت واسه لایه ی اپلیکیشن هست! |
RE: برنامه نویسی شبکه - mehrdad66 - 26 تیر ۱۳۹۱ ۱۱:۳۹ ب.ظ
(۲۶ تیر ۱۳۹۱ ۰۶:۴۹ ب.ظ)mosaferkuchulu نوشته شده توسط: انگار این کاvی که من می خوام انجام بدم با سوکت نمی شه!چون سوکت واسه لایه ی اپلیکیشن هست! پس واجبه ابتدا فصل ۶ کتاب مهندسی اینترنت احسان ملکیان رو بخونید تا در مورد برنامه نویسی شبکه دیدگاهی کسب کنید با این جواب های نصف و نیمه ما فکر نکنم کارتون راه بیفته، هر چند تلاش ما برای کمک به شماست در اصل وقتی حرف از برنامه نویسی و برقراری ارتباط نرم افزاری(جدای از مبحث کابل ها) میشه میره تو لایه های بالای شبکه مثل لایه کاربردی. وقتی دو تا سیستم میخوان با هم ارتباط داشته باشن(حالا چه روتر باشه بخواد با pc ارتباط برقرار کنه یا دو تا روتر بخوان با هم تبادل داشته باشن) بعد از اتصال فیزیکی نوبت به تخصیص ip و تایید هویت و ارسال اطلاعات در حین تبادل داده میشه. شما در برنامه نویسی سوکت آدرس ip ماشن مقصد همراه با پارامترهای تنظیمی و اطلاعات لازم رو برای گیرنده میفرستید و بعد از تایید هویت و همچنین تنظیم شدن پارامترهای اولیه شروع به دریافت میکنه. حالا امکان داره این ارتباط داده ای از نوع اتصال گرا مثل tcp باشه یا بدون اتصال مثل udp که بسته به روش ارسال و این که از چه پروتکلی و چه توابعی استفاده میشه با هم فرق دارن. حتی در سیستم عامل free bsd که برای روترها استفاده میشه برقراری ارتباط با روترهای دیگه و تنظیمات الگوریتمی اون(مثل برنامه نویسی برای اعمال مسیریابی) در لایه نرم افزاری صورت میگیره. و اما بعد از مطالعه اون فصل نوبت به تمرین و اجرای نمونه مثال ها میرسه. خب pc خونگی شما نمیتونه در ان واحد getway و کلاینت و سرور و این جور چیزهارو شبیه سازی کنه! لینک زیر تمرین برنامه نویسی جاوا برای شبکه هست مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید. نوبت به نرم افزار شبیه ساز شبکه که بسیار ساده و کاربردی هست میرسه. cisco packet tracer نام نرم افزار شبیه ساز شبکه هست و توی اون انواع اقسام روتر، سوئیچ، ها و چیزای دیگه هست و بعد از وصل کردن به هم هر کاری دلتون بخواد روش انجام میدید. پاکت تریسر از لینک زیر قابل دریافت هست مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید. مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید. نرم افزار مشهور و بسیار شیرینی هست جا داره از استاد آیینه ساز بخاطر معرفی و آموزش کار با نرم افزار تقدیر و تشکر کنم. چه سوئیچها و روترهایی که با این نرم افزار سر کلاس برای ما وصل نکردن. یعنی جلسه آخر به طور کامل یک اینترنت کوچیک رو با این نرم افزار شبیه سازی کردن |
برنامه نویسی شبکه - mosaferkuchulu - 27 تیر ۱۳۹۱ ۱۲:۴۸ ب.ظ
واقعا ممنون!من نرم افزاری که لینکشو دادید نگاه کردم اما متاسفانه wimax و Gsm و که من می خوام روش کار کنم ساپورت نمی کنه! |
RE: برنامه نویسی شبکه - mehrdad66 - 27 تیر ۱۳۹۱ ۰۸:۱۶ ب.ظ
(۲۷ تیر ۱۳۹۱ ۱۲:۴۸ ب.ظ)mosaferkuchulu نوشته شده توسط: واقعا ممنون!من نرم افزاری که لینکشو دادید نگاه کردم اما متاسفانه wimax و Gsm و که من می خوام روش کار کنم ساپورت نمی کنه! آخر ما سر در نیاوردیم مسافر کوچولو میخواد چیکار کنه؟ اول گفتید متصل شدن کلاینت به getway و حالا مدل سازی وایمکس و جی اس ام ... ولی حالا باید نرم افزار دیگری رو معرفی کنم برای کارهای تخصصی تر و شبیه سازی هایی مثل وایمکس و gsm باید از opnet modeller 14 استفاده کنید. من این ترم ارائه مهندسی اینترنت ATM قبول کردم که استادمون گفت باید بیای شیسه سازی کنی و با مدل سازی نشون بدی منم هر چقدر گشتم بهتر از اوپ نت پیدا نکردم البته برای شبیه سازی در این نرم افزار باید برنامه نویسی کنید که خودش یه سری نمونه پیشفرض داره و شاید وایمکسم توش باشه |
برنامه نویسی شبکه - mosaferkuchulu - 27 تیر ۱۳۹۱ ۱۰:۵۸ ب.ظ
پروژه ی من اینه که یک گیت وی در لایه ی شبکه ی وایمکس و جی اس ام پیاده سازی کنم که اطلاعات بتونن بین این دو تا رد بدل بشن! حالا این کار با این نرم افزاری که می گید ممکنه؟ |