مدل TCP/IP که برای ارتباط اینترنتی بهکار میرود، میتوان به لایههای مختلفی تقسیمبندی کرد که بعدا بیشتر توضیح میدم، اما یکی از این لایهها، لایه ارتباط host2host است که خود شامل دو پروتکل است به نامهای TCP و UDP : با تشکر |
||
یکشنبه، 18 آبان، 1382 |
||
شماره Port و آدرس IP چیه ؟ |
||
*** شماره پورت (Port number): *** آدرس IP یا IP Address |
آیا تا بحال برایتان پیش آمده است که بخواهید برای منوهای خود آیتمهای تصویری ایجاد کنید. در این مقاله میخوام بگم که چطور میشه در منوها تصویر قرار داد. شما میتوانید کدهای زیر را در یک ماژوال کپی کرده و با استفاده از تابع زیر به منوهای خود تصویر اضافه کنید. در زیر توضیحی در مورد چگونگی کار با این تابع را خواهید آموخت.
AddMenuBitmap(SubMenuIndex As Byte, MenuIndex As Byte, UnCheckedPicture As IPictureDisp, CheckedPicture As IPictureDisp)
در آرگومان اول باید Index منویی را مشخص کنید که با کلیک بر روی آن منویی باز میشود گزینه مورد نظر شما در آن است. این شماره گذاری از صفر شروع میشود. برای مثال در همین Internet Explorer منوی فایل دارای Index صفر و منوی ادیت دارای Index یک است.
در آرگومان دوم باید Index منویی را مشخص کنید که گزینه مورد نظر شما در آن است. این شماره گذاری نیز از صفر شروع میشود. برای مثال در همین Internet Explorer منوی فرعی ...Open دارای Index یک است چون از بالا دومین گزینه است.
در آرگومان سوم باید مسیر تصویر خود را مشخص کنید. بهتر است که این تصویر را در یک Image List قرار دهید. نکته بعدی اینکه باید سایز تصویر شما 14 پیکسل در 14 پیکسل باشد. نکته آخر اینکه شما میتوانید از تصاویری با فرمت bmp.* و jpg.* و gif.* استفاده کنید در ضمن شما میتوانید از حالت Transparency نیز استفاده کنید. این تصویر در حالت تیک نخورده منو اعمال میشود.
در آرگومان چهارم باید مسیر تصویری را مشخص کنید که منو در حالت تیک خورده است.
این هم کدهای ماژول:
"Import Necessary API Functions To Use itmap Pictures In The Menus
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function SetMenuItemBitmaps Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long
"Import a Bitmap Constant To Use Bitmap Pictures In The Menus
Private Const MFT_BITMAP = &H4&
Public Function AddMenuBitmap(SubMenuIndex As Byte, MenuIndex As Byte, UnCheckedPicture As IPictureDisp, CheckedPicture As IPictureDisp)
"Set Some Variable To Add Bitmap Pictures
Dim MenuID As Long
Dim SubMenu As Long
Dim SubMenuID As Long
MenuID = GetMenu(SplashFrm.hwnd)
SubMenu = GetSubMenu(MenuID, SubMenuIndex)
SubMenuID = GetMenuItemID(SubMenu, MenuIndex)
SetMenuItemBitmaps MenuID, SubMenuID, MFT_BITMAP, UnCheckedPicture, CheckedPicture
End Function
زبان برنامه نویسی VB زبانی است که تقریبا شی گراست و از کنترلهای ذاتی ویندوز استفاده میکند که در کتابخانه Comctl32 موجود میباشد اما ویژوال بیسیک بطور پیش فرض آنها را درخود دارد. خوب بریم سر مطلب خودمون. آیا تا بحال به شکل ظاهری کنترلها در ویندوز XP توجه کردهاید؟ در این مقاله میخواهیم به شما یاد دهیم که چگونه میتوانید ظاهر قدیمی کنترلهای یک برنامه را به ظاهر XP آن تبدیل کنید.
شما میتوانید برنامههایی را که بصورت exe هستند و با یکی از زبانهای C و یا Java نوشته شده اند را به صورت ظاهر XP در بیاورید. برای اینکار متن زیر را در Notepad کپی کرده و بصورت زیر ذخیره نمایید.
YourExeFileName.manifest
توجه داشته باشید که عبارت manifest پسوند فایل بوده و عبارت YourExeFileName نام فایل exe شما به همراه پسوند exe است. بطور مثال پس از اینکه متن زیر را در Notepad کپی کردید باید فایلی به اسم vb6.exe.manifest ذخیره کنید و حتما در دایرکتوری فایل اجرایی vb6 کپی کرده تا ظاهر ویژوال بیسیک به صورتXP در بیاید. خوب فعلا این متن رو در Notepad کپی کنید.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly
xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0"
>
<assemblyIdentity
type="win32"
processorArchitecture="*"
version="6.0.0.0"
name="mash"
/>
<deion>Enter your Deion Here</deion>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
language="*"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
/>
</dependentAssembly>
</dependency>
</assembly>
خوب حالا باید این فایل رو به همان صورتی که گفته شد در دایرکتوری فایل exe ذخیره کنید. در ضمن به همان صورتی که گفته شد میتوانید خود ویژوال بیسیک را نیز به صورت ظاهر XP در بیاورید. فقط دو نکته زیر را فراموش نکنید.
?.فایل شما باید به صورت YourExeFileName.exe.manifest ذخیره شود.
?.فایل شما باید در دایرکتوری فایل اجرایی ذخیره شود.
خوب بریم سراغ ویژوال بیسیک خودمان. اگر این روش را برای فایلهای اجرایی که با ویژوال بیسیک نوشته شده اند را پیاده کنید برنامه شما هرگز اجرا نمیشود. برای تبدیل کردن ظاهر معمولی برنامههای ویژوال بیسیک به ظاهر XP آن باید در کدنویسی برنامه کمی تغییر ایجاد کنید.
ابتدا تابع زیر را در ویژوال بیسیک تعریف کنید
Declare Function InitCommonControls Lib "comctl32.dll" () As Long
سپس این تابع را در رویداد Initialize فرم خود فراخوانی کنید.
بعد از کامپایل کردن برنامه خود بصورت exe به همان روشی که گفته شد یک فایل manifest برای فایل اجرایی خود درست کنید. علت آن که برنامههایی که با یک از زبانهای سی یا جاوا نوشته شدهاند با یک فایل manifest تبدیل میشود آن است که این برنامه بطور خودکار تابع گفته شده را اجرا میکنند که این مسئله به نوع زبان کامپایل کننده آنها بر میگردد.
شما میتوانید متن مورد نیاز برای فایلmanifest را در Resource برنامه قرار دهید تا دیگر به فایل manifest نیاز نباشد. برای اینکار برنامه XP Style را دانلود کنید. این برنامه براحتی فایلهای اجرایی را به ظاهر XP تبدیل میکند. البته فراموش نکنید که برای برنامههای که در محیط ویژوال بیسیک نوشته میشوند همچنان به فراخوانی تابع گفته شده در کدنویسی برنامه احتیاج دارید.
نکته دیگر اینکه با این روش کنترل برنامههای شما فقط در خود ویندوز XP بصورت ظاهر XP نمایان خواهد شد
DSL مخفف Digital Subscriber Line ،است که یک فناوری برای استفاده از خطوط تلفن برای دسترسی سریع (یه خورده سریعتر از اینترنت های معمولی) به اینترنت است. این تکنولوژی مزایای زیادی دارد که پرداختن به همه آنها از حوصله این مقاله خارج است. تنها به دو جنبه پر طرفدار و معروف آن اشاره می کنیم. با استفاده از تکنولوژی DSL شما می توانید، با استفاده از یک خط تلفن، همزمان هم به اینترنت متصل باشید و هم به تماسهای تلفنی خود به طور مجزا بپردازید. بدین صورت که همزمان با اتصال به اینترنت به منزل دوستان و آشنایان زنگ بزنید و از سایتی که همزمان از طریق اینترنت می بینید آنها را مطلع سازید، حتی دوست دیگرتان که همزمان با این کارها به شما زنگ می زند را زیاد پشت خط منتظر نگذارید و با او هم صحبت کنید! اینها شد یک مزیت این تکنولوژی.
مزیت دوم آن این است که سرعت آن !کمی بیشتر! از سرعت اتصال اینترنت های معمولی است (حدود 27 تا 147 برابر سرعت اینترنت معمولی که حداقل آن را 56K فرض کنیم!). سرعت این فناوری بین 1.5 Mbps تا 8Mbps می باشد که تفاوت بین این دو عدد به میزان فاصله تا سرویس دهنده اینترنت و اشغال بودن خط تلفن بستگی دارد. حتما می پرسید چه طور امکان دارد؟ پس بگذارید براتون تخصصی تر توضیح دهم. اگر همین خطوط درپیت تلفن تهران خودمون را در نظر بگیریم به طور پیش فرض پهنای باندی معادل 247 کیلو هرتز برخوردار است. یک تماس تلفنی صوتی حداکثر حدود 4 کیلو هرتز از این باند را اشغال می کند. حال اگر بتوان با فیلتری این 4 کیلو هرتز کانال صوتی را از بقیه باند جدا کرد، آنوقت ما 243 کیلو هرتز باند آزاد خواهیم داشت، که می توان با این میزان پهنای باند، با سرعتی حداقل حدود 1536 K به اینترنت متصل شد که در صورت داشتن فاصله کمتر از 2 کیلومتر با ISP این سرعت به میزان 8192 K افزایش می یابد که در مقایسه با حداکثر سرعت اینترنت های معمولی 56 K اختلافی چشمگیر دیده می شود، تازه امکان آزاد بودن خط تلفن برای برقرای ارتباط تلفنی را هم به آن اضافه کنید. علت اختلاف سرعت خطوط DSL که ارتباط مستقیم با سرعت اینترنت دارد، تفاوت سیگنالهای صوتی با اطلاعات است.
در مراکز تلفنی دستگاههایی وجود دارد که برای تقویت کانالهای صوتی به کار می روند، ولی اطلاعات (DATA) نمی توانند از آنها عبور کنند. به همین دلیل است که هر چه مراکز سوئیچینگ مخابرات بین شما و ISP شما کمتر باشد، سرعت تبادل اطلاعات نیز بیشتر می شود، (حالا می بینی از فردا همه یکی یه متر دستشون دارن خیابون متر می کنن!) ولی باز با در نظر گرفتن این کاهش سرعت حداقل سرعت باز بین همان 1536 K تا 8192 K می باشد که 27 تا 147 برابر سرعت کنونی اینترنت (در تهران) می باشد. البته این رو هم بگم که هزینه استفاده از این فناوری در ایران به واسطه استفاده بسیار زیادی که توسط آن از اینترنت به عمل می آید، به طور سرسام آوری بالاست و برای استفاده های شخصی به صرفه نیست