X
تبلیغات
AlzahraComputerEngineeringGroup
 
نوشته شده توسط : شبنم غلامشاهی



alzahraceg2.jpg


تاریخ انتشار : سی ام آبان 1390 |
نوشته شده توسط : AlzahraCEG
خبرها
 



دوستان برای تحویل و ارائه تمرین های برنامه نویسی شبکه دوشنبه

ساعت ناهار به اتاق استاد مراجعه کنید :)



 

جایی برای نگاه سریع به برنامه نویسی شبکه در جاوا

http://www.tutorialspoint.com/java/java_networking.htm


تاریخ انتشار : نهم آبان 1390 |
نوشته شده توسط : شبنم غلامشاهی
دوستان توجه کنید این فایل شامل داکیومنتی در مورد کلاس ها و توابع پالیک میباشد، حتما مطالعه کنید :

لینک دانلود : vacuum_cleaner.pdf


لازمه چند نکته هم بگم :

1- وقتی زمین بطور کامل تمیز شود بازی بطور خودکار متوقف خواهد شد.

2- جاروبرقی های میتوانند هر دو در یک خانه قرار بگیرند و البته این مشکلی رو ایجاد نخواهد کرد.

3- برای گذاشتن هر نوع حافظه برای هر جور جاروبرقی حتما اول در مورد ایده ی خود با دکتر عزمی صحبت کنید.

4- در این بازی فقط یک بافر 16تایی را میتوان به عنوان حافظه ی مشترک در نظر گرفت.




:: برچسب‌ها: هوش مصنوعی
تاریخ انتشار : بیست و چهارم فروردین 1393 |
نوشته شده توسط : شبنم غلامشاهی

 اتصال گوشی تلفن همراه به کامپیوتر یا لپ تاپ از طریق کابل واسط (کابل USB) :

برای شروع ، نرم افزار مربوط به گوشی راکه معمولاً PC Suite نام دارد بر روی کامپیوتر خود نصب کنید. اجازه دهید تا مشخصات و تجهیزات گوشی شما بطور کامل توسط کامپیوتر شناخته شود. در این مرحله کامپیوتر گوشی متصل شده را به عنوان یک مودم می شناسد. برای اینکه مطمئن شوید که گوشی شما اکنون به عنوان مودم نیز به کامپیوتر معرفی شده به قسمت Phone and modem option از منوی Control Panel سیستم خود مراجعه نمائید.


مشاهده نام و مدل گوشی در تب Modems به منزله شناسایی مودم موبایل توسط ویندوز و نصب موفقیت آمیز نرم افزار PC suite و مودم می باشد.


 دراین مرحله باید در قسمت Network and Sharing Center  در Control Panel  مراجعه کرده و در پنجره باز شده روی   Setup a new connection or network  کلیک کنید، در پنجره ی جدیدی که باز میشود روی Connect to internet  کلیک کنید در قسمت بعد Setup a new connection را انتخاب کنید، create new connection را زده و در مرحله بعدی اتصال Dial-Up را انتخاب کنید، در این مرحله باید در محل Dial-Up Phone Number  عبارت*۹۹***#  یا *۹۹#  را وارد نمایید.

در کادرهای User Name و Password  هم لازم نیست چیزی وارد شود.

در قسمت Connection name یک نام انتخاب کنید.

بعد از تکمیل و زدن دکمه ی Connect  از گشت و گذاردر اینترنت لذت ببرید.




:: برچسب‌ها: شبکه
تاریخ انتشار : بیست و چهارم فروردین 1393 |
نوشته شده توسط : شبنم غلامشاهی

خوب برای شروع باید کمی با مفهوم سوکت آشنا شیم !

در واقع سنگ بنای تمام برنامه های کاربردی لایه چهارم یا همون لایه انتقال مفهومی به نام سوکت است !

این نکته رو باید در نظر داشته باشیم که در برنامه نویسی سوکت هر ارتباط دو طرفه است و بین دو پروسه کاربردی است، پس وقتی برنامه ای مینویسیم از سیستم عامل میخواهیم که شرایطی را برای ارتباط با کامپیوتری با آدرس مشخص (IP) و برنامه ای مشخص روی همون کامپیوتر (Port) فراهم کند و این یعنی سوکت را باز کند !

پس سوکت باز یعنی یک ارتباط باز بین دو نقطه یا همون سیستم ها !

نتیجه ای که گرفته میشه اینه که سوکت یک مفهوم انتراعی از تعریف ارتباط در سطح برنامه نویسی است و برنامه نویس با تعریف سوکت عملا تمایل خود را برای تبادل داده ها به سیستم عامل اعلام میکند !


خوب تا اینجا مفهوم سوکت رو گفتیم اما حالا میریم سراغ انواع سوکت :

دو نوع سوکت وجود دارد :

1- سوکت Stream  یا اتصال گرا (Connection Oriented)

2- سوکت Datagram با بدون اتصال (Connectionless)

سوکت اتصال گرا مبتنی بر پروتکل TCP است، یعنی مثل TCP  یعنی داده ها با همان ترتیب، با اطمینان صد در صد و با نظارت کافی مبادله میشوند!

خدماتی مثل FTP، HTTP، SMTP از سوکت Stream  استفاده میکنند !

سوکت بدون اتصال هم مبتنی بر پروتکل UDP است و این یعنی داده ها به طور نامطمئن و بدون تضمین در ترتیب داده های فرستاده میشوند و تنها مزیت آن سرعت تحویل داده هاست!

خدماتی مثل DNS  از این سوکت استفاده میکنند !

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

تا اینجا میدونستیم که یک ارتباط دو طرفه است پس،

یکی شروع کننده است و بهش Initiator  میگیم   و عملا همون Client  ماست !

و

یکی که در صورت آمادگی این ارتباط رو میپذیرد و منتظر درخواستی است که از سمت client میاد رو listener  میگیم و همون Server ماست !


حالا بریم سراغ تمرین : 

سرویس دهنده وب (WebServer) یک برنامه کاربردی است که اطلاعاتی را در اختیار دارد و بر اساس سیاست هایی این اطلاعات را به اشتراک میگذارد و منتظر یک متقاضی (Client) است که این اطلاعات را درخواست کند !

عملیاتی که در سرور رخ میده :

1- یک سوکت که کد مشخصه ارتباط است ایجاد کنیم :

که در جاوا این متود از کلاس ServerSocket این کار را بر عهده میگیرد : 

 private ServerSocket ss = new ServerSocket(port);

2- به سوکت یک آدرس پورت نسبت میدهیم عملا داریم به سیستم عامل میگیم که تمام بسته های TCP را که آدرس پورت مقصدشون با این پورت یکی است رو به من (Server) بدهد :)


3- حال به سیستم عامل میگوییم که کارش را برای پذیرش تقاضاهای اتصال TCP شروع کند همون Listen !  خود به خود listen  میکنه دستوری نمیخواد ! :))

display("listening !!! port:"+port); // میتونیم اینطوری نشون بدیم داره به چه پورتی گوش میده 


4- با متودی به نام accept  یک ارتباطی که اکنون معلق هست را دریافت کرده و به برنامه میدهیم (تقاضای client  رو میگیره !) 

Socket s = ss.accept();

نکته : کلاس Socket کلاسی جهت برقراری ارتباط و مبادله داده در سمت مشتری است. 

5- خوب حالا با استفاده از متود getInputStream چیزی که client وارد میکند رو میخونیم :

DataInputStream dis = DataInputStream(client.getInputStream());

یادتون باشه که مشتری ما برنامه مرورگر است که URL از طریق اون فرستاده میشود !

پس میریم سراغ اینکه داخل URL چه چیزی نوشته شده و چه فایلی درخواست شده :

این دستورات مربوط به برسی رشته ورودیو پارس آن است !

StringTokenizer tokenizer = new StringTokenizer(line," ");

                if(!tokenizer.hasMoreTokens()){break;}

                    if(tokenizer.nextToken().equals("GET")){

                        fileName = tokenizer.nextToken();

                        if(fileName.equals("/")){

                            fileName = "index.html"; // در صورتی که بعد از آدرس سرور و پورت فقط یک "/" اومده بود یعنی کاربر درخواست دیدن فرضا صفحه اول سایت فرضی ما رو داشته 

                        }

                        else{

                            fileName = fileName.substring(1); // اگر اینطور نبود میره سراغ ادامه رشته و آدرس فایل رو میگیره 

                        }

                    }

حالا با بررسی رشته درخواستی نوع و اسم فایل رو درمیاریم و بعد از اون یک header میسازیم که برای مشتری فرستاده میشه !

اما قبل از اون باید فایل درخواستی رو  باز کنیم با این دستورات :

try{


requestFile = new DataInputStream(new BufferedInputStream(new FileInputStream("wwwroot/"+fileName))); // آدرس فایل مورد نظر رو در میاره که در فولدر مورد نظر قرار دارد

            fileLength = requestFile.available(); // سایز فایل مورد نظر را در میاورد

            app.display(fileName+" is "+fileLength+" bytes long.\n");

            

        }catch(FileNotFoundException e){

// در صورتی که فایل مورد نظر وجود نداشت صفحه ای راکه اطلاع میدهد چنین فایلی وجود ندارد را به عنوان اسم فایل درخواستی میگذارد

            if(fileName.equals("filenfound.html"))

            fileName = "filenfound.html";

            if(!fileOpened()){return false;}

{

حالا میریم که هدری رو با اسم و ادرس فایل مورد نظر بسازیم و همین طور از طریق پارس رشته ورودی نوع آن را به دست بیاریم :

String contentType;

        if((fileName.toLowerCase().endsWith(".jpg"))||(fileName.toLowerCase().endsWith(".jpeg"))

                ||(fileName.toLowerCase().endsWith(".jpe")))

        {contentType = "image/jpg";} // در این بخش نوع فایل را از طریق اطلاعاتی که بعد از اسم فایل اومده در میاوریم 

        else if((fileName.toLowerCase().endsWith(".gif")))

        {contentType = "image/gif";}

        else if((fileName.toLowerCase().endsWith(".html"))|| fileName.toLowerCase().endsWith(".htm")))

        {contentType = "text/html";}

        else if((fileName.toLowerCase().endsWith(".qt"))||(fileName.toLowerCase().endsWith(".mov")))

        {contentType = "video/quichtime";}

        else if((fileName.toLowerCase().endsWith(".class")))

        {contentType= "application/octet-stream";}

        else if((fileName.toLowerCase().endsWith(".mpg"))|| (fileName.toLowerCase().endsWith(".mpeg")))

                {contentType = "audio/basics";}

        else if((fileName.toLowerCase().endsWith(".wav")))

        {contentType = "audio/x-wave";}

        else {contentType = "text/plain";}//default

// در این قسمت هدر ساخته میشود 

        header = "HTTP/1.0 200 OK\n"+

                "Allow: GET\n"+

                "MIME-Version: 1.0\n"+

                "Server: HMJ Basic HTTP Server\n"+

                "Content-Type: "+contentType+"\n"+

                "Content-Length: "+fileLength+"\n\n";

     

بعد از ساختن هدر باید اون رو برای مشتری بفرستیم :

 DataOutputStream clientStream = new DataOutputStream(new BufferedOutputStream(client.getOutputStream())); // برای نوشتن در سمت مشتری

            clientStream.writeBytes(header); // هدر را برای مشتری نشان میدهد

// اطلاعات را در سمت سرور نشان میدهد

            app.display("***** File Request *****\n"+"***** "+fileName+" *****\n"+header);

            int i;

            byteSent = 0;

// شروع میکند به ارسال بایت ها 

            while((i=requestFile.read())!=-1){

                clientStream.writeByte(i);

                byteSent++;

            }

            clientStream.flush();

            clientStream.close(); // سوکت رو میبنده



:: برچسب‌ها: شبکه
تاریخ انتشار : بیست و چهارم فروردین 1393 |
نوشته شده توسط : شبنم غلامشاهی

5 Edition Solutions


Solutions_5_Edition.pdf



:: برچسب‌ها: شبکه
تاریخ انتشار : نوزدهم فروردین 1393 |
نوشته شده توسط : شبنم غلامشاهی
میتونید از این فایل کمک بگیرید :

توضیح مسئله + راهنمایی 

دانشگاه NTNU


Ping_lab.pdf



:: برچسب‌ها: شبکه
تاریخ انتشار : نوزدهم فروردین 1393 |