ببخشید امیر آقا من interrupt میندازم!
فلش به صورت native از socket پشتیبانی میکنه، البته نه به صورت listener بلکه امکان connect کردن به سروری که به یک port خاص و پروتکل خاص listen می کند را دارد (اگر منظور یک live socket دو طرفه باشه)
در حال حاظر در flash player 8 دو نوع پروتکل و در آینده و از flash player 8.5 به بعد سه نوع پروتکل برای socket programming وجود خواهند داشت:
1- پروتکل RTMP یا Real-Time Messaging Protocol برای ارتباطات متنی و stream ها (voice و Video) که نیاز به application server هایی دارد که macromedia ارائه کرده است، این app server ها امکان دریافت connection ها یی که از پروتکل RTMP استفاده می کنند را دارند مانند macromedia Flash Communication Server که جدیدا به Flash Media Server تغییر نام داده است، macromedia Breeze و app server جدید و بسیار قدرتمند ماکرومدیا Flex Enterprise Services
2- پروتکل متنی پایه که از TCP-IP استفاده می کنند و قادر به connect کردن به هر سروری که قابلیت accept کردن یک socket را دارند می باشد. از کلاس XMLSocket برای استفاده از این پروتکل باید استفاده کرد، کار نسبتا سختی است ولی قابلیت بیشتری از RTMP دارد (به جز streaming) زیرا برنامه سرور کاملا دست ما می باشد و کلا نحوه ارتباط با توجه به نیاز پروژه کاملا قابل تغییر است. بهترین مزیت این سیستم این است که می توان در سمت client ترکیبی از برنامه فلش و سرور را قرار داد به نحوی که client ها مستقیما به هم متصل شوند و نیاز یه یک سرور مرتفع شود که البته به علت محدود بودن این socket به ارتباطات متنی زیاد قابل استفاده نیست
3- پروتکل های باینری (مخصوص ActionScript 3) که امکان ارتباطات باینری بسیار سطح پایین را فراهم میکنند. از این پروتکل می توان برای ارسال و دریافت range وسیعی از data استفاده کرد. البته برای استفاده باید decoder ها و encoder های مورد نیاز در client و server وجود داشته باشند که کار آسونی نیست!