تبليغاتX
مرکز آموزش عالی علمی ـ کاربردی تهران 2
حتماً تا به حال شنيده ايد كه افرادى موفق مى شوند از طريق اينترنت، فيلم يا آلبوم هاى موسيقى را دانلود كنند. مسلماً اين سئوال براى شما پيش آمده است كه اين موضوع چگونه امكان پذير است. در اكثر موارد اين افراد از سيستم هاى اشتراك فايل استفاده مى كنند. معمولاً به اشتراك گذاشتن فايل ها از مدل - peer - to peer و نه از مدل cliem-server در شبكه پيروى مى كنند. در اين مدل فايل ها از روى كامپيوترهاى شخصى افراد منتقل و يا بر روى آنها ذخيره مى شوند. افرادى كه از اين نوع سيستم ها استفاده مى كنند، ممكن است در حال دريافت يا ارسال فايلى باشند و گاهى نيز ممكن است اين دو فعاليت به طور همزمان انجام گيرد. در اين سيستم ها وقتى شما فايلى را به اصطلاح دانلود (دريافت) مى كنيد، بايد حتماً فايل يا فايل هايى را براى آپلود (ارسال) در اختيار سيستم قرار دهيد. البته اين موضوع ممكن است خوشايند كاربر نباشد كه بسيارى از اين سيستم ها اشتياق اين كار را با بالا بردن سرعت دريافت در كاربران ايجاد مى كنند.
Napster
، يك سيستم سرويس متمركز، اولين و اصلى ترين ابزار محبوب و پرطرفدار در زمينه اشتراك فايل بود. Napster تنها مختص فايل هاى موزيك از نوع mp3 بود و پس از مدتى توسط صاحبان صنعت موسيقى دنيا به طور قانونى تعطيل شد. قبل از به وجود آمدن اين مشكلات قانونى، Napster براى خود جايگزين ها و رقبايى پيدا كرد. conm-ella، يك شبكه نامتمركز، به وجود آورد. اين سيستم غيرمتمركز، يك سرويس با كد كاملاً باز بود و به كاربران اجازه جست وجو براى تقريباً همه نوع فايلى (و نه فقط mp3) را مى داد. اين سيستم تهديد و رقيب نسبتاً جدى براى سيستم هاى متمركز بود. منظور از سيستم نامتمركز، سيستمى است كه محدود به افراد يا محل هاى خاصى براى سرورها نيست و هر فردى در اين سيستم ها مى تواند به عنوان سرور عمل كند. بنابراين سيستم، توسعه بيشترى يافته و با از كار افتادن يك سرور، سيستم از كار نمى افتد. اكثر نرم افزارهاى اشتراك فايل از اين دو سيستم استفاده مى كنند. Napster، اكنون با رفع مشكلات قبلى و با شارژ كاربران خود مى تواند به طور قانونى به فعاليت خود ادامه دهد. امروزه برنامه هاى اشتراك فايل زيادى به وجود آمده اند و اين تنوع را مى توان در وجود سيستم عامل هاى مختلف، شبكه هاى متفاوت و امكانات و قابليت هاى گوناگون اين نرم افزارها جست وجو كرد. اما نكته اى كه براى كاربران همه اين برنامه ها مشترك است، تبليغات ملال آور و برنامه هاى مزاحم است كه همراه با اين برنامه ها ممكن است نصب شوند.
يكى از جالب ترين و پرطرفدارترين اين برنامه ها، سيستم edonkey2000 است كه براساس همان مدل peer-to-peer كار مى كند. اين سيستم از پروتكل انتقال فايل Mnltisontce استفاده مى كند. به اين معنى كه منابع فايل ها در هر لحظه مى توانند صد ها يا هزاران نفر باشند و كاربر مى تواند همزمان از چند كاربر داراى منبع در دريافت فايل استفاده كند. اين سيستم نيز يك شبكه نامتمركز است. دو نوع برنامه به اين شبكه مى تواند متصل شود: برنامه كاربر و سرور.
برنامه كاربر، استفاده كنندگان را به شبكه براى به اشتراك گذاشتن و دريافت فايل هايشان متصل مى كند و سرور ها نقش نقاط اصلى براى اتصال كاربران را بازى مى كنند.
البته تمام فايل ها روى اين سرور ها قرار نمى گيرند بلكه فقط نقش سرويس دهنده اتصال را دارند.
edonkey
از يك تابع درهم سازى براى شناسايى فايل ها استفاده مى كند. استفاده از اين تابع باعث مى شود تا فايل ها با نام هاى متفاوت اما با ماهيت يكسان شناخته شوند. بنابراين فايل ها براى شناسايى در شبكه، به نام وابسته نيستند. از ديگر ويژگى هاى اين شبكه، تقسيم بندى فايل ها است. بنابراين فايل قبل از كامل شدن نيز مى توانند به اشتراك گذاشته شوند و فقط قسمتى از فايل كه موجود است مى تواند ارسال شود.
اين ويژگى سرعت توزيع فايل در شبكه را به شدت افزايش مى دهد. از آنجا كه اين سيستم، يك سيستم نامتمركز است، مى تواند سرور هاى زياد و متنوعى داشته باشد. به علت تغيير و تحولات در سرور ها، كاربران در هر بار اتصال به شبكه ليست قبلى سرور هاى خود را به روز (update) مى كنند. در اين سيستم، كاربران مى توانند هزاران مگابايت از اطلاعات خود از قبيل تصاوير سى دى، ويدئو، بازى و نرم افزار ها را نيز به اشتراك بگذارند. براى بالا رفتن سرعت جست وجو نيز آخرين نتايج جست وجو ها در قالب فايلى به نام ed2k نگهدارى مى شود. Media VAMP, Shareaza, MLDonkey, eMule نرم افزار هاى معروفى هستند كه با اين شبكه كار مى كنند.

موفق و پيروز باشيد

 

منبع:روزنامه شرق



+ نوشته شده توسط الهه رحمان‌زاده در پنجشنبه سوم خرداد 1386 و ساعت 11:49 |

** بازيابي نظرسنجي از بانک و قرار دادن آن در صفحه **
من براي اين کار از کنترل PollControl استفاده کردم اين ابزار کاملا رايگان ميباشد اما قبل از استفاده از آن به بررسي خصوصيات اين کنترل ميپردازم :
Properties :
Canvote :
اگر مقدار آن را True کنيد کنترل به مود انتخاب ميرود و کاربر ميتواند يکي از گزينه ها را انتخاب کند و اگر مقدار آن را False کنيد به مود نمايش ميرود .

PollQuestion :
سوالي که به کاربر نشان داده ميشود .

CSSCaption :
کلاس استايل شيت مربوط به Caption و سوال را مشخص ميکند
CssPollClass :
کلاس مورد استفاده کنترل را مشخص ميکند .
ImagesFolder :
پوشه حاوي تصاوير مربوط به اين کنترل را مشخص ميکند .
VoteCaption :
متني را نشان ميدهد که تعداد کل آراء را نشان ميدهد به عنوان مثال : ( تعداد آراء : )

همچنين اين کنترل يک Event به نام CastVote نيز دارد که وقتي کاربر دکمه تاييد را انتخاب ميکند رخ ميدهد .

اما براي استفاده از اين کنترل فايل PollControl.Dll و فولدر Image مربوط و همچنين فايل هاي CSS مربوط به اين کنترل را به پروژه اضافه ميکنيم و از تگ زير براي استفاده از آن استفاده ميکنيم :

کد:

<%@ Register Assembly="PollControl" Namespace="EccSoft.Web.UI" TagPrefix="cc1" %>

و يک نمونه از اين کنترل را در صفحه قرار ميديم :

کد:

                        csspollclass="PollBack" votescaption="تعداد آراء :"

                        width="206px" style="font-family: tahoma" Font-Names="tahoma">

اميدوارم که خسته نشده باشيد .
حالا ميرسيم به جايي که بايد نظرسنجي را از بانک بخونيم و در اين کنترل قرار دهيد .
براي اينکه ما بايد نظرسنجي فعال را از بانک بگيريم و در کنترل قرار دهيم :
در Page_Load کدهاي زير را وارد کنيد :

کد:

        Dim connection As New SqlConnection(ConfigurationManager.ConnectionStrings("UserPolls").ToString)

        Dim cmd As SqlCommand

        Dim cmdtext As String

        Dim obj As SqlDataReader

 

        If Not Me.Page.IsPostBack Then

            Pollcontrol1.CanVote = True

            ' Add Question Text To Poll Control

            cmdtext = "select QuestionText from PollQuestions where Iscurrent=1 and Isarchived=0"

            cmd = New SqlCommand(cmdtext, connection)

            connection.Open()

            Pollcontrol1.PollQuestion = cmd.ExecuteScalar

            connection.Close()

 

 

            cmdtext = "select optionID,PollID,OptionText,Votes from PollOptions where pollID in(select PollID from Pollquestions where Iscurrent=1 and Isarchived=0)"

            cmd = New SqlCommand(cmdtext, connection)

            connection.Open()

            obj = cmd.ExecuteReader

            ' Add Options To Poll Control :

            While obj.Read

                Pollcontrol1.AddPollAnswer(obj("pollID"), obj("optionID"), obj("optionText"), obj("votes"))

            End While

            connection.Close()

            obj.Close()

 

        End If

خوب ما در اينجا متن سوال و option هاي آن را از جداول PollQuestion و PollOptions گرفتيم و در کنترل Poll Control قرار داديم . يک بار برنامه را در مرورگر اجرا کنيد :


همانطور که ملاحظه ميکنيد سوال و option هاي نظر سنجي با موفقيت در کنترل قرار گرفته اند.
حالا بايد ايونت مربوط به کليک کاربر را بنويسيم :
کدهاي زير را به ايونت Pollcontrol1_CastVote اضافه کنيد ( به علت کمبود وقت من بدون چک کردن MemberID انتخاب کاربر را در بانک ذخيره ميکنم )

کد:

        ' Update PollOptions Without Check MemberID

        Dim connection As New SqlConnection(ConfigurationManager.ConnectionStrings("UserPolls").ToString)

        Dim com As New SqlCommand("update pollOptions set answercount=answercount+'1' where OptionID=@answerID", connection)

        connection.Open()

        com.Parameters.Add("@optionID", SqlDbType.Int).Value = Int(AnswerId)

        com.ExecuteNonQuery()

        connection.Close()

        Response.Redirect("result.aspx")

شما ميتوانيد از کوکي ، IP و يا کدکاربري و .. براي تشخيص کاربر راي دهنده استفاده کنيد.
خوب ما در اينجا به مقدار فيلد Votes يکي اضافه ميکنيم و سپس براي نمايش نتيجه به صفحه Result ميرويم .
اما در Page_load صفحه Result کدهاي زير را مينويسيم :

کد:

        Dim connection As New SqlConnection(ConfigurationManager.ConnectionStrings("UserPolls").ToString)

        Dim cmd As SqlCommand

        Dim cmdtext As String

        Dim obj As SqlDataReader

 

        If Not Me.Page.IsPostBack Then

            Pollcontrol1.CanVote = False

            cmdtext = "select optionID,PollID,OptionText,Votes from PollOptions where pollID in(select PollID from Pollquestions where Iscurrent=1 and Isarchived=0)"

            cmd = New SqlCommand(cmdtext, connection)

            connection.Open()

            obj = cmd.ExecuteReader

            ' Add Options To Poll Control :

            While obj.Read

                Pollcontrol1.AddPollAnswer(obj("pollID"), obj("optionID"), obj("optionText"), obj("votes"))

            End While

            connection.Close()

            obj.Close()

 

        End If

اگر دقت کرده باشيد ما در اينجا Canvatoes را براير False قرار داديم تا به مد نمايش نتايج برويم .
نتيجه را در مرورگر خود ببينيد :


خوب در اينجا کار به پايان رسيده و شما با موفقيت يک سيستم نظر سنجي ساختيد .

موفق و پيروز باشيد .

منبع:barnamenevis.org



+ نوشته شده توسط الهه رحمان‌زاده در پنجشنبه سوم خرداد 1386 و ساعت 11:40 |

 


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

ابتدا از ساخت بانک اطلاعاتي و جداول مورد نياز براي اين سيستم شروع ميکنيم .
براي ساخت اين سيستم از سه جدول استفاده ميکنيم :

1 - PollQuestions :
اين جدول شامل فيلدهاي زير ميباشد و براي ذخيره سوالات نظر سنجي استفاده ميشود :


PollID : اين فيلد براي ذخيره ID مورد نظر استفاده ميشود و آن را به صورت کليد اصلي تعريف ميکنيم . Identity اين فيلد را نيز Yes ميکنيم .
AddedDate :
تاريخ اضافه شدن سوال را مشخص ميکند .
AddedBy :
مشخص ميکند اين سوال توسط چه کسي ايجاد شده و اين براي سايتهايي که چند مدير دارند بسيار مناسب خواهد بود .
QuestionText :
همانطور که از نام فيلد مشخص ميباشد براي ذخيره سوال نظر سنجي استفاده ميشود .
IsCurrent :
مشخص ميکند که آيا اين نظرسنجي به عنوان نظرسنجي فعال انتخاب شود يا خير .
IsArchived :
که براي آرشيو کردن نظرسنجي ها به کار ميرود
ArchivedDate :
که تاريخ آرشيو شدن را نشان ميدهد .

بر اين اساس نظرسنجي فعال خواهد بود که Iscurrent آن برابر 1 و IsArchived آن برابر 0 باشد.

2 - PollOptions :
براي ذخيره Option هاي نظرسنجي به کار ميرود و شامل فيلدهاي زير ميباشد :


OptionID : براي ذخيره ID انتخاب ها به کار ميرود ( Identity برابر 1 انتخاب شود - کليد اصلي )
AddedDate :
تاريخ اضافه شدن .
AddedBy :
فرد ايجاد کننده .
ID : PollID
نظرسنجي که انتخاب ها مربوط به آن است .
OptionText :
متن انتخاب ها .
Votes :
تعداد راي هاي مربوط به اين انتخاب .

3 - PollResult :
اين جدول براي ذخيره کاربراني که به نظرسنجي ها راي ميدهند استفاده ميشود که شامل فيلدهاي زير ميباشد :


ID : Poll ID نظرسنجي فعال
PollChoice :
گزينه اي که توسط کاربر انتخاب شده .
MemberID :
نام کاربري يا ID کاربر .

اين جدول براي اين استفاده ميشود که بتوانيم تشخيص دهيم که چه کسي به اين نظر سنجي راي داده است تا اگر خواست براي بار دوم راي دهد از اين عمل وي جلوگيري کنيم . اگر ميخواهيد فقط کاربران عضو راي دهند ميتوانيد از MemberID براي ذخيره آنها استفاده کنيد و اگر ميخواهيد کاربران مهمان هم راي دهند ميتوانيد از IP آنها استفاده کنيد يا اينکه به جاي استفاده از اين جدول ميتوانيد از کوکي ها استفاده کنيد ( که البته من اين مورد رو پيشنهاد نميکنم )
ميرويم سر اصل مطلب :
------------------------

*
ذخيره نظر سنجي ها در بانک *
با توجه به اينکه عمل ذخيره کردن سوالات و انتخاب ها با چند دستور ساده Insert انجام ميشود از اين قسمت ميگذريم و به مرحله بعد ميريم ( البته اگر در اين قسمت مشکلي داشتيد سوال کنيد ) Stored Procedure هاي ذخيره در فايل Sample موجود است که ميتوانيد از آنها استفاده کنيد .
توجه : مقدار فيلد Votes در جدول PollOptions بايد در زمان ايجاد انتخاب ها 0 باشد .

ادامه دارد........م

 



+ نوشته شده توسط الهه رحمان‌زاده در پنجشنبه سوم خرداد 1386 و ساعت 11:30 |