.TH "socat" "1" "" "" "" .PP .SH "نام (NAME)" socat \- بازپخشکننده همهمنظوره (سوکت کت) .PP .SH "خلاصه دستور (SYNOPSIS)" \f(CWsocat [گزینه‌ها] <آدرس> <آدرس>\fP .br \f(CWsocat \-V\fP .br \f(CWsocat \-h[h[h]] | \-?[?[?]]\fP .br \f(CWfilan\fP .br \f(CWprocan\fP .PP .SH "توضیحات (DESCRIPTION)" .PP ابزار \fBSocat\fP یک ابزار مبتنی بر خط فرمان است که دو جریان بایت دوطرفه برقرار کرده و داده‌ها را میان آن‌ها منتقل می‌کند\&. از آنجا که این جریان‌ها می‌توانند از مجموعه بزرگی از انواع مختلف گیرنده‌ها و منابع داده (به انواع آدرس مراجعه کنید) ساخته شوند، و از آنجا که گزینه‌های آدرس متعددی را می‌توان روی این جریان‌ها اعمال کرد، socat می‌تواند برای اهداف بسیار گوناگونی به کار گرفته شود\&. .PP ابزار \fBFilan\fP ابزاری است که اطلاعات مربوط به توصیف‌کننده‌های فایل فعال خود را در خروجی استاندارد (stdout) چاپ می‌کند\&. این ابزار برای اشکال‌زدایی \fBsocat\fP نوشته شده است، اما ممکن است برای مقاصد دیگر نیز سودمند باشد\&. برای یافتن اطلاعات بیشتر از گزینه \-h استفاده کنید\&. .PP ابزار \fBProcan\fP ابزاری است که اطلاعات مربوط به پارامترهای فرایند را در خروجی استاندارد چاپ می‌کند\&. این ابزار برای درک بهتر برخی از ویژگی‌های فرایند یونیکس و اشکال‌زدایی \fBsocat\fP نوشته شده است، اما برای اهداف دیگر نیز ممکن است مفید واقع شود\&. .PP چرخه حیات یک نمونه \fBsocat\fP معمولاً از چهار مرحله تشکیل شده است\&. .PP در مرحله مقداردهی اولیه (\fIinit\fP)، گزینه‌های خط فرمان تجزیه شده و ثبت وقایع (logging) آغاز می‌شود\&. .PP در طول مرحله باز کردن (\fIopen\fP)، \fBsocat\fP ابتدا آدرس نخست و سپس آدرس دوم را باز می‌کند\&. این مراحل معمولاً مسدودکننده (blocking) هستند؛ از این رو، به‌ویژه برای انواع آدرس‌های پیچیده مانند socks، درخواست‌های اتصال یا گفتگوهای احراز هویت باید پیش از آغاز مرحله بعدی تکمیل شوند\&. .PP در مرحله انتقال (\fItransfer\fP)، \fBsocat\fP توصیف‌کننده‌های فایل خواندن و نوشتن هر دو جریان را از طریق \f(CWselect()\fP زیر نظر می‌گیرد و هنگامی که داده در یک طرف آماده باشد \fIو\fP بتوان آن را در طرف دیگر نوشت، socat آن را می‌خواند، در صورت نیاز تبدیل نویسه خط جدید (newline) را انجام می‌دهد، داده را در توصیف‌کننده فایل نوشتن جریان دیگر می‌نویسد، و سپس به انتظار برای داده‌های بیشتر در هر دو جهت ادامه می‌دهد\&. .PP هنگامی که یکی از جریان‌ها عملاً به انتهای فایل (EOF) می‌رسد، مرحله بستن (\fIclosing\fP) آغاز می‌گردد\&. \fBSocat\fP وضعیت EOF را به جریان دیگر منتقل می‌کند، یعنی تلاش می‌کند تنها جریان نوشتن آن را ببندد (shutdown)، و به آن فرصت می‌دهد تا به آرامی و به درستی خاتمه یابد\&. برای مدتی مشخص، \fBsocat\fP به انتقال داده در جهت دیگر ادامه می‌دهد، اما پس از آن تمام کانال‌های باقی‌مانده را بسته و خاتمه می‌یابد\&. .PP .SH "گزینهها (OPTIONS)" .PP ابزار \fBSocat\fP چند گزینه خط فرمان ارائه می‌دهد که رفتار برنامه را تغییر می‌دهند\&. آن‌ها هیچ ارتباطی با به‌اصطلاح گزینه‌های آدرس که به عنوان بخشی از مشخصات آدرس استفاده می‌شوند، ندارند\&. .PP .IP "\fB\f(CW\-V\fP\fP" اطلاعات نسخه و قابلیت‌های در دسترس را در خروجی استاندارد چاپ کرده و خارج می‌شود\&. .IP "\fB\f(CW\-h | \-?\fP\fP" یک متن راهنما شامل شرح گزینه‌های خط فرمان و انواع آدرس‌های در دسترس را در خروجی استاندارد چاپ کرده و خارج می‌شود\&. .IP "\fB\f(CW\-hh | \-??\fP\fP" مشابه \-h، به همراه فهرستی از نام‌های کوتاه تمام گزینه‌های آدرس در دسترس\&. برخی گزینه‌ها وابسته به پلتفرم هستند، از این رو این خروجی برای بررسی پیاده‌سازی مربوطه سودمند است\&. .IP "\fB\f(CW\-hhh | \-???\fP\fP" مشابه \-hh، به همراه فهرستی از تمام نام‌های گزینه‌های آدرس در دسترس\&. .IP "\fB\f(CW\-d\fP\fP" بدون این گزینه، تنها پیام‌های مهلک (fatal)، خطا (error) و هشدار (warning) چاپ می‌شوند؛ با اعمال این گزینه، پیام‌های اطلاع‌رسانی (notice) نیز چاپ خواهند شد\&. برای اطلاعات بیشتر به بخش DIAGNOSTICS مراجعه کنید\&. .IP "\fB\f(CW\-d0\fP\fP" با این گزینه، تنها پیام‌های مهلک و خطا چاپ می‌شوند؛ این گزینه رفتار \fBsocat\fP را تا نسخه 1\&.7\&.4 بازمی‌گرداند\&. .IP "\fB\f(CW\-d \-d | \-dd | \-d2\fP\fP" پیام‌های مهلک، خطا، هشدار و اطلاع‌رسانی را چاپ می‌کند\&. .IP "\fB\f(CW\-d \-d \-d | \-ddd | \-d3\fP\fP" پیام‌های مهلک، خطا، هشدار، اطلاع‌رسانی و اطلاعاتی (info) را چاپ می‌کند\&. .IP "\fB\f(CW\-d \-d \-d \-d | \-dddd | \-d4\fP\fP" پیام‌های مهلک، خطا، هشدار، اطلاع‌رسانی، اطلاعاتی و اشکال‌زدایی (debug) را چاپ می‌کند\&. .IP "\fB\f(CW\-D\fP\fP" پیش از آغاز مرحله انتقال، اطلاعات مربوط به توصیف‌کننده‌های فایل را در لاگ ثبت می‌کند\&. .IP "\fB\f(CW\-\-experimental\fP\fP" قابلیت‌های جدیدی که به خوبی آزمایش نشده‌اند یا در آینده دستخوش تغییر می‌شوند باید صریحاً با این گزینه فعال شوند\&. .IP "\fB\f(CW\-ly[]\fP\fP" پیام‌ها را به جای stderr در syslog می‌نویسد؛ سطح اهمیت همان‌طور که با گزینه \-d تعیین شده اعمال می‌شود\&. با مشخصه اختیاری ، نوع syslog را می‌توان انتخاب کرد، مقدار پیش‌فرض \(dq\&daemon\(dq\& است\&. ممکن است کتابخانه‌های شخص ثالث از این گزینه پیروی نکنند\&. .IP "\fB\f(CW\-lf\fP" پیام‌ها را به جای stderr در پرونده لاگ [نام فایل] می‌نویسد\&. برخی کتابخانه‌های شخص ثالث، به‌ویژه libwrap، ممکن است از این گزینه پیروی نکنند\&. .IP "\fB\f(CW\-ls\fP\fP" پیام‌ها را در stderr می‌نویسد (این حالت پیش‌فرض است)\&. ممکن است برخی کتابخانه‌های شخص ثالث از این گزینه پیروی نکنند، به‌ویژه به نظر می‌رسد libwrap تنها وقایع را در syslog ثبت می‌کند\&. .IP "\fB\f(CW\-lp\fP\fP\f(CW\fP" نام برنامه چاپ‌شده در پیام‌های خطا را که برای ساختن نام متغیرهای محیطی نیز به کار می‌رود، بازنویسی (override) می‌کند\&. .IP "\fB\f(CW\-lu\fP\fP" دقت برچسب زمان (timestamp) پیام‌های خطا را به میکروثانیه افزایش می‌دهد\&. هنگام ثبت وقایع در syslog کار نمی‌کند\&. .IP "\fB\f(CW\-lm[]\fP\fP" حالت لاگ ترکیبی\&. در حین راه‌اندازی، پیام‌ها در stderr چاپ می‌شوند؛ هنگامی که \fBsocat\fP حلقه مرحله انتقال یا حالت دیمن (daemon) را آغاز می‌کند (یعنی پس از باز کردن تمام جریان‌ها و پیش از آغاز انتقال داده، یا در سوکت‌های شنونده با گزینه fork، پیش از نخستین فراخوانی accept)، ثبت وقایع را به syslog تغییر می‌دهد\&. با مشخصه اختیاری ، نوع syslog را می‌توان انتخاب کرد، مقدار پیش‌فرض \(dq\&daemon\(dq\& است\&. .IP "\fB\f(CW\-lh\fP\fP" نام میزبان (hostname) را به پیام‌های لاگ اضافه می‌کند\&. از مقدار متغیر محیطی HOSTNAME یا در صورت تنظیم نبودن HOSTNAME از مقدار دریافت‌شده با فراخوانی \f(CWuname()\fP استفاده می‌کند\&. .IP "\fB\f(CW\-v\fP\fP" داده‌های منتقل‌شده را علاوه بر جریان‌های مقصد، در stderr نیز می‌نویسد\&. قالب خروجی متنی همراه با برخی تبدیل‌ها برای خوانایی بهتر است، و با \(dq\&> \(dq\& یا \(dq\&< \(dq\& برای نشان دادن جهت جریان داده پیشوندگذاری می‌شود\&. .IP "\fB\f(CW\-x\fP\fP" داده‌های منتقل‌شده را علاوه بر جریان‌های مقصد، در stderr نیز می‌نویسد\&. قالب خروجی به صورت هگزادسیمال است و با \(dq\&> \(dq\& یا \(dq\&< \(dq\& برای نشان دادن جهت جریان داده پیشوندگذاری می‌شود\&. می‌تواند با \f(CW\-v\fP ترکیب شود\&. .IP "\fB\f(CW\-r \fP\fP" داده‌های خام (باینری) جاری از آدرس چپ به راست را در فایل داده‌شده ذخیره (dump) می‌کند\&. نام فایل ممکن است شامل ارجاع به متغیرهای محیطی و \f(CW$$\fP (شناسه فرایند یا pid)، \f(CW$PROGNAME\fP (گزینه \-lp را ببینید)، \f(CW$TIMESTAMP\fP (از قالب %Y%m%dT%H%M%S استفاده می‌کند)، و \f(CWMICROS\fP (میکروثانیه‌های زمان روز) باشد\&. البته این ارجاعات باید در برابر بسط پوسته (shell expansion) محافظت شوند\&. .IP "\fB\f(CW\-R \fP\fP" داده‌های خام (باینری) جاری از آدرس راست به چپ را در فایل داده‌شده ذخیره (dump) می‌کند\&. برای سفارشی‌سازی نام فایل گزینه \-r را ببینید\&. .IP "\fB\f(CW\-b\fP\fP\f(CW\fP" اندازه بلوک انتقال داده [size_t] را تنظیم می‌کند\&. در هر مرحله حداکثر بایت منتقل می‌شود\&. مقدار پیش‌فرض 8192 بایت است\&. .IP "\fB\f(CW\-s\fP\fP" به طور پیش‌فرض، هنگامی که خطایی رخ دهد \fBsocat\fP خاتمه می‌یابد تا از اجرای فرایند در زمانی که گزینه‌ای نتواند اعمال شود جلوگیری کند\&. با این گزینه، \fBsocat\fP با خطاها با مسامحه برخورد کرده و تلاش می‌کند ادامه دهد\&. حتی با این گزینه، socat در خطاهای مهلک خارج می‌شود، و در صورت شکست بررسی‌های امنیتی، تلاش‌های اتصال را لغو خواهد کرد\&. .IP "\fB\f(CW\-S\fP\fP\f(CW\fP" مجموعه سیگنال‌هایی را که توسط \fBsocat\fP صرفاً برای چاپ یک پیام لاگ دریافت (catch) می‌شوند تغییر می‌دهد\&. دریافت این سیگنال‌ها برای وارد کردن اطلاعات سیگنال در لاگ \fBsocat\fP مفید است، اما از تولید core dump یا سایر کنش‌های استاندارد جلوگیری می‌کند\&. مجموعه پیش‌فرض این سیگنال‌ها عبارت است از SIGHUP، SIGINT، SIGQUIT، SIGILL، SIGABRT، SIGBUS، SIGFPE، SIGSEGV و SIGTERM؛ این مجموعه (0x89de در لینوکس) را با یک نگاشت بیتی (bitmap) جایگزین کنید (برای نمونه SIGFPE دارای مقدار 8 است و بیت آن 0x0080 می‌باشد)\&. .br نکته: سیگنال‌های SIGHUP، SIGINT، SIGQUIT، SIGUSR1، SIGPIPE، SIGALRM، SIGTERM و SIGCHLD در هر صورت ممکن است به طور ویژه مدیریت شوند\&. .IP "\fB\f(CW\-t\fP\fP\f(CW\fP" هنگامی که یک کانال به EOF می‌رسد، بخش نوشتن کانال دیگر بسته (shutdown) می‌شود\&. سپس \fBsocat\fP پیش از خاتمه یافتن، به مدت [timeval] ثانیه منتظر می‌ماند\&. مقدار پیش‌فرض 0\&.5 ثانیه است\&. این مهلت زمانی تنها برای آدرس‌هایی اعمال می‌شود که بخش نوشتن و خواندن آن‌ها می‌تواند مستقل از هم بسته شود\&. زمانی که در طول بازه مهلت زمانی، بخش خواندن EOF دهد، socat بدون منتظر ماندن برای مهلت، خاتمه می‌یابد\&. .IP "\fB\f(CW\-T\fP\fP\f(CW\fP" مهلت زمانی کل عدم فعالیت: زمانی که \fBsocat\fP در حلقه انتقال قرار دارد و برای مدت [timeval] ثانیه هیچ رویدادی رخ ندهد (هیچ داده‌ای نرسد، هیچ وقفه‌ای رخ ندهد و غیره)، خاتمه می‌یابد\&. تا نسخه 1\&.8\&.0\&.0 مقدار \(dq\&0\(dq\& به معنای \(dq\&بی‌نهایت\(dq\& بود؛ از نسخه 1\&.8\&.0\&.1 مقدار \(dq\&0\(dq\& به معنای 0 است و مقادیر کمتر از صفر (<0) به معنای بی‌نهایت هستند\&. .br برای پروتکل‌هایی مانند UDP که نمی‌توانند EOF را منتقل کنند سودمند است\&. .IP "\fB\f(CW\-u\fP\fP" از حالت یک‌طرفه (unidirectional) استفاده می‌کند\&. آدرس اول تنها برای خواندن، و آدرس دوم تنها برای نوشتن استفاده می‌شود (مثال)\&. .IP "\fB\f(CW\-U\fP\fP" از حالت یک‌طرفه در جهت معکوس استفاده می‌کند\&. آدرس اول تنها برای نوشتن، و آدرس دوم تنها برای خواندن استفاده می‌شود\&. .IP "\fB\f(CW\-g\fP\fP" در طول تجزیه گزینه آدرس، بررسی نکن که آیا این گزینه در محیط آدرس داده‌شده مفید به شمار می‌رود یا خیر\&. اگر می‌خواهید برای نمونه اعمال یک گزینه سوکت به یک دستگاه سریال را اجبار کنید، از آن استفاده نمایید\&. .IP "\fB\f(CW\-L\fP\fP\f(CW\fP" اگر فایل قفل (lockfile) وجود داشته باشد، با خطا خارج می‌شود\&. اگر فایل قفل وجود نداشته باشد، آن را ایجاد کرده و ادامه می‌دهد، و در هنگام خروج فایل قفل را حذف (unlink) می‌کند\&. .IP "\fB\f(CW\-W\fP\fP\f(CW\fP" اگر فایل قفل وجود داشته باشد، تا زمان ناپدید شدن آن منتظر می‌ماند\&. زمانی که فایل قفل وجود نداشته باشد، آن را ایجاد کرده و ادامه می‌دهد، و در هنگام خروج فایل قفل را حذف می‌کند\&. .IP "\fB\f(CW\-4\fP\fP" در صورتی که آدرس‌ها نسخه را به طور ضمنی یا صریح مشخص نکنند، از IP نسخه 4 استفاده می‌کند\&. از نسخه 1\&.8\&.0\&.1 این حالت پیش‌فرض است\&. .IP "\fB\f(CW\-6\fP\fP" در صورتی که آدرس‌ها نسخه را به طور ضمنی یا صریح مشخص نکنند، از IP نسخه 6 استفاده می‌کند\&. .IP "\fB\f(CW\-0\fP\fP" نسخه خاصی از IP را ترجیح نده؛ این به آدرس‌های انفعالی (LISTEN، RECV و غیره) امکان می‌دهد در برخی پلتفرم‌ها (به جز BSD) به هر دو نسخه سرویس دهند\&. .IP "\fB\f(CW\-\-statistics\fP\fP" .IP "\fB\f(CW\-S\fP\fP" پیش از خاتمه یافتن \fBsocat\fP، آمار انتقال (شمارنده‌های بایت‌ها و بلوک‌ها برای هر دو جهت) را در لاگ ثبت می‌کند\&. .br همچنین سیگنال USR1 را ببینید\&. .br این قابلیت آزمایشی است و ممکن است در نسخه‌های بعدی تغییر کند\&. .PP .SH "مشخصات آدرسها (ADDRESS SPECIFICATIONS)" .PP با استفاده از آرگومان‌های آدرس در خط فرمان، کاربر دستورالعمل‌ها و اطلاعات لازم را برای برقراری جریان‌های بایت به \fBsocat\fP ارائه می‌دهد\&. .PP یک مشخصه آدرس معمولاً شامل یک کلمه کلیدی نوع آدرس، صفر یا چند پارامتر آدرس الزامی که با \(cq\&:\(cq\& از کلمه کلیدی و از یکدیگر جدا می‌شوند، و صفر یا چند گزینه آدرس جداشده با \(cq\&,\(cq\& است\&. .PP کلمه کلیدی نوع آدرس را مشخص می‌کند (مانند TCP4، OPEN، EXEC)\&. برای برخی کلمات کلیدی، مترادف‌هایی وجود دارد (\(cq\&\-\(cq\& برای STDIO، و TCP برای TCP4)\&. کلمات کلیدی به حروف بزرگ و کوچک حساس نیستند\&. برای تعداد اندکی از انواع آدرس‌های خاص، کلمه کلیدی ممکن است حذف شود: مشخصات آدرسی که با یک عدد آغاز می‌شوند، آدرس‌های FD (توصیف‌کننده فایل خام) فرض می‌شوند؛ اگر پیش از نخستین \(cq\&:\(cq\& یا \(cq\&,\(cq\& یک \(cq\&/\(cq\& یافت شود، GOPEN (باز کردن فایل عمومی) فرض می‌گردد\&. .PP تعداد و نوع پارامترهای آدرس مورد نیاز به نوع آدرس بستگی دارد\&. برای نمونه، TCP4 به یک مشخصه سرور (نام یا آدرس)، و یک مشخصه درگاه (شماره پورت یا نام سرویس) نیاز دارد\&. .PP صفر یا چند گزینه آدرس ممکن است با هر آدرس داده شود\&. آن‌ها به روش‌هایی بر آدرس تأثیر می‌گذارند\&. گزینه‌ها شامل یک کلمه کلیدی گزینه یا یک کلمه کلیدی گزینه و یک مقدار هستند که با \(cq\&=\(cq\& از یکدیگر جدا می‌شوند\&. کلمات کلیدی گزینه‌ها به حروف بزرگ و کوچک حساس نیستند\&. برای پالایش گزینه‌هایی که با یک نوع آدرس سودمند هستند، هر گزینه عضو یک گروه گزینه است\&. برای هر نوع آدرس مجموعه‌ای از گروه‌های گزینه مجاز تعیین شده است\&. تنها گزینه‌های متعلق به یکی از این گروه‌های آدرس ممکن است استفاده شوند (مگر با گزینه \-g)\&. .PP مشخصات آدرسی که از طرح فوق پیروی می‌کنند، مشخصات آدرس \fIتکی\fP (single) نیز نامیده می‌شوند\&. دو آدرس تکی را می‌توان با \(dq\&!!\(dq\& ترکیب کرد تا یک آدرس از نوع \fIدوگانه\fP (dual) برای یک کانال تشکیل شود\&. در اینجا، آدرس نخست توسط \fBsocat\fP برای خواندن داده‌ها و آدرس دوم برای نوشتن داده‌ها استفاده می‌شود\&. هیچ راهی برای تعیین یک گزینه تنها برای یک بار وجود ندارد تا بر هر دو آدرس تکی اعمال شود\&. .PP معمولاً آدرس‌ها در حالت خواندن/نوشتن باز می‌شوند\&. هنگامی که یک آدرس بخشی از یک مشخصه آدرس دوگانه است، یا زمانی که گزینه \-u یا \-U استفاده می‌شود، ممکن است یک آدرس تنها برای خواندن یا برای نوشتن استفاده شود\&. در نظر گرفتن این نکته در برخی انواع آدرس‌ها حائز اهمیت است\&. .PP با نسخه 1\&.5\&.0 و بالاتر socat، تحلیل لغوی تلاش می‌کند نقل‌قول‌ها و پرانتزها را به طور معناداری مدیریت کرده و اجازه گریز دادن نویسه‌های خاص را می‌دهد\&. اگر یکی از نویسه‌های ( { [ \(cq\& یافت شود، نویسه بسته متناظر آن \- ) } ] \(cq\& \- جستجو می‌شود؛ آن‌ها ممکن است تودرتو نیز باشند\&. در داخل این ساختارها، نویسه‌ها و رشته‌های خاص socat مانند : ، , ، !! به طور ویژه پردازش نمی‌شوند\&. تمام آن نویسه‌ها و رشته‌ها را می‌توان با \e یا در درون \(dq\&\(dq\& گریز (escape) داد\&. .PP .SH "انواع آدرسها (ADDRESS TYPES)" .PP این بخش انواع آدرس‌های موجود را همراه با کلیدواژه‌ها، پارامترها و مفاهیم آن‌ها شرح می‌دهد\&. .PP .IP "\fB\f(CWCREATE:\fP\fP" فایل را با \f(CWcreat()\fP باز کرده و از توصیف‌گر فایل برای نوشتن استفاده می‌کند\&. این یک آدرس فقط‌نوشتنی (write\-only) است زیرا فایلی که با \f(CWcreat\fP باز شده باشد قابل خواندن نیست\&. به گزینه‌های \-u و \-U و آدرس‌های دوگانه مراجعه کنید\&. .br فلگ‌هایی مانند O_LARGEFILE را نمی‌توان اعمال کرد\&. اگر به آن‌ها نیاز دارید از OPEN همراه با گزینه‌های create,create استفاده کنید\&. .br باید یک مسیر معتبر موجود یا ناموجود باشد\&. اگر یک لوله نام‌گذاری‌شده (named pipe) باشد، ممکن است \f(CWcreat()\fP مسدود شود؛ اگر به یک سوکت اشاره کند، این یک خطا است\&. .br گروههای گزینه: FD,REG,NAMED .br گزینههای کاربردی: mode, mode, user, group, unlink\-early, unlink\-late, append .br همچنین ببینید: OPEN, GOPEN .IP .IP "\fB\f(CWDCCP\-CONNECT::\fP\fP (\fB\f(CWDCCP::\fP\fP)" یک اتصال DCCP به [آدرس IP] و [سرویس DCCP] مشخص‌شده با استفاده از نسخه ۴ یا ۶ پروتکل IP بسته به مشخصات آدرس، تحلیل نام، یا گزینه pf برقرار می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP4,IP6,SCTP,CHILD,RETRY .br گزینههای کاربردی: bind, connect\-timeout, tos, dccp\-set\-ccid, nonblock, sourceport, retry, readbytes .br همچنین ببینید: DCCP4\-CONNECT, DCCP6\-CONNECT, DCCP\-LISTEN, TCP\-CONNECT SCTP\-CONNECT .IP "\fB\f(CWDCCP4\-CONNECT::\fP\fP (\fB\f(CWDCCP4::\fP\fP)" مشابه DCCP\-CONNECT، اما فقط از پروتکل IPv4 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP4,DCCP,CHILD,RETRY .br .IP "\fB\f(CWDCCP6\-CONNECT::\fP\fP (\fB\f(CWDCCP6::\fP\fP)" مشابه DCCP\-CONNECT، اما فقط از پروتکل IPv6 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP6,DCCP,CHILD,RETRY .br .IP .IP "\fB\f(CWDCCP\-LISTEN:\fP\fP (\fB\f(CWDCCP\-L:\fP\fP)" روی [سرویس DCCP] گوش فرا می‌دهد و یک اتصال DCCP را می‌پذیرد\&. نسخه IP برابر با ۴ یا نسخه مشخص‌شده با گزینه آدرس pf، گزینه socat (\-4, \-6)، یا متغیر محیطی SOCAT_DEFAULT_LISTEN_IP است\&. توجه داشته باشید که باز کردن این آدرس معمولاً تا زمان اتصال یک کلاینت مسدود می‌شود\&. .br گروههای گزینه: FD,SOCKET,LISTEN,CHILD,RANGE,IP4,IP6,DCCP,RETRY .br گزینههای کاربردی: fork, bind, range, max\-children, backlog, accept\-timeout, dccp\-set\-sid, su, reuseaddr, retry .br همچنین ببینید: DCCP4\-LISTEN, DCCP6\-LISTEN, TCP\-LISTEN, SCTP\-LISTEN, DCCP\-CONNECT .IP "\fB\f(CWDCCP4\-LISTEN:\fP\fP (\fB\f(CWDCCP4\-L:\fP\fP)" مشابه DCCP\-LISTEN، اما فقط از پروتکل IPv4 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,LISTEN,CHILD,RANGE,IP4,DCCP,RETRY .br .IP "\fB\f(CWDCCP6\-LISTEN:\fP\fP (\fB\f(CWDCCP6\-L:\fP\fP)" مشابه DCCP\-LISTEN، اما فقط از پروتکل IPv6 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,LISTEN,CHILD,RANGE,IP6,DCCP,RETRY .br .IP .IP "\fB\f(CWEXEC:\fP\fP" یک زیرفرآیند منشعب می‌کند که با فرآیند والد خود ارتباط برقرار کرده و برنامه مشخص‌شده را با \f(CWexecvp()\fP فراخوانی می‌نماید\&. یک دستور ساده با آرگومان‌هایی است که با تک‌فاصله از هم جدا شده‌اند\&. اگر نام برنامه شامل \(cq\&/\(cq\& باشد، بخش پس از آخرین \(cq\&/\(cq\& به عنوان ARGV[0] در نظر گرفته می‌شود\&. اگر نام برنامه یک مسیر نسبی باشد، قواعد \f(CWexecvp()\fP برای یافتن برنامه از طریق \f(CW$PATH\fP اعمال می‌شود\&. پس از شروع موفقیت‌آمیز برنامه، \fBsocat\fP داده‌ها را به stdin فرآیند نوشته و از stdout آن به صورت پیشفرض با استفاده از یک سوکت دامنه یونیکس ایجادشده توسط \f(CWsocketpair()\fP می‌خواند\&. (مثال) .br گروههای گزینه: FD,SOCKET,EXEC,FORK,TERMIOS .br گزینههای کاربردی: path, fdin, fdout, chroot, su, su\-d, nofork, socktype, pty, stderr, ctty, setsid, pipes, umask, login, sigint, sigquit, netns .br همچنین ببینید: SYSTEM,SHELL .IP "\fB\f(CWFD:\fP\fP" از توصیف‌گر فایل استفاده می‌کند\&. این توصیف‌گر باید از قبل به عنوان یک توصیف‌گر فایل معتبر در یونیکس (UN*X) وجود داشته باشد\&. .br گروههای گزینه: FD (TERMIOS,REG,SOCKET) .br همچنین ببینید: STDIO, STDIN, STDOUT, STDERR .IP "\fB\f(CWGOPEN:\fP\fP" (باز کردن عمومی یا Generic open) این نوع آدرس تلاش می‌کند با هر ورودی فایل‌سیستم به جز دایرکتوری‌ها به شکلی سودمند رفتار کند\&. می‌تواند یک مسیر نسبی یا مطلق باشد\&. اگر از قبل وجود داشته باشد، نوع آن بررسی می‌شود\&. در صورت وجود سوکت دامنه یونیکس، \fBsocat\fP متصل می‌شود؛ اگر اتصال ناموفق باشد، \fBsocat\fP سوکت را از نوع دیتاگرام فرض کرده و از فراخوانی‌های \f(CWsendto()\fP استفاده می‌کند\&. اگر ورودی سوکت نباشد، \fBsocat\fP آن را با اعمال فلگ \f(CWO_APPEND\fP باز می‌کند\&. اگر وجود نداشته باشد، با فلگ \f(CWO_CREAT\fP به عنوان یک فایل معمولی باز می‌شود (مثال)\&. .br گروههای گزینه: FD,REG,SOCKET,NAMED,OPEN .br همچنین ببینید: OPEN, CREATE, UNIX\-CONNECT .IP .IP "\fB\f(CWIP\-SENDTO::\fP\fP" یک سوکت خام IP باز می‌کند\&. بسته به مشخصات میزبان یا گزینه pf، از پروتکل IP نسخه ۴ یا ۶ استفاده می‌شود\&. این آدرس از برای ارسال بسته‌ها به [آدرس IP] استفاده کرده و بسته‌ها را از میزبان دریافت می‌کند و بسته‌های دریافتی از سایر میزبان‌ها را نادیده می‌گیرد\&. پروتکل ۲۵۵ از سوکت خام به گونه‌ای استفاده می‌کند که سربرگ IP بخشی از داده‌ها باشد\&. .br گروههای گزینه: FD,SOCKET,IP4,IP6 .br گزینههای کاربردی: pf, ttl .br همچنین ببینید: IP4\-SENDTO, IP6\-SENDTO, IP\-RECVFROM, IP\-RECV, UDP\-SENDTO, UNIX\-SENDTO .IP "\fB\f(CWINTERFACE:\fP\fP" با استفاده از بسته‌های خام حاوی داده‌های لایه پیوند (link level)، با یک شبکه متصل به یک رابط ارتباط برقرار می‌کند\&. نام رابط شبکه است\&. در حال حاضر فقط روی لینوکس در دسترس است\&. .br گروههای گزینه: FD,SOCKET .br گزینههای کاربردی: pf, type .br همچنین ببینید: ip\-recv .IP "\fB\f(CWIP4\-SENDTO::\fP\fP" مشابه IP\-SENDTO، اما همیشه از IPv4 استفاده می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP4 .br .IP "\fB\f(CWIP6\-SENDTO::\fP\fP" مشابه IP\-SENDTO، اما همیشه از IPv6 استفاده می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP6 .br .IP .IP "\fB\f(CWIP\-DATAGRAM:
:\fP\fP" داده‌های خروجی را به آدرس مشخص‌شده ارسال می‌کند که به‌ویژه می‌تواند یک آدرس پخش همگانی (broadcast) یا چندپخشی (multicast) باشد\&. بسته‌های ورودی به سوکت محلی بررسی می‌شوند تا مشخص شود آیا آدرس مبدأ آن‌ها با گزینه‌های RANGE یا TCPWRAP تطابق دارد یا خیر\&. این نوع آدرس می‌تواند برای مثال برای پیاده‌سازی ارتباطات متقارن یا نامتقارن پخش همگانی یا چندپخشی استفاده شود\&. .br گروههای گزینه: FD, SOCKET, IP4, IP6, RANGE .br گزینههای کاربردی: bind, range, tcpwrap, broadcast, ip\-multicast\-loop, ip\-multicast\-ttl, ip\-multicast\-if, ip\-add\-membership, ip\-add\-source\-membership, ipv6\-join\-group, ipv6\-join\-source\-group, ttl, tos, pf .br همچنین ببینید: IP4\-DATAGRAM, IP6\-DATAGRAM, IP\-SENDTO, IP\-RECVFROM, IP\-RECV, UDP\-DATAGRAM .IP "\fB\f(CWIP4\-DATAGRAM::\fP\fP" مشابه IP\-DATAGRAM، اما همیشه از IPv4 استفاده می‌کند\&. (مثال) .br گروههای گزینه: FD,SOCKET,IP4,RANGE .br .IP "\fB\f(CWIP6\-DATAGRAM::\fP\fP" مشابه IP\-DATAGRAM، اما همیشه از IPv6 استفاده می‌کند\&. لطفاً توجه داشته باشید که IPv6 پخش همگانی (broadcast) ندارد\&. .br گروههای گزینه: FD,SOCKET,IP6,RANGE .br .IP .IP "\fB\f(CWIP\-RECVFROM:\fP\fP" یک سوکت خام IP از باز می‌کند\&. بسته به گزینه pf، از پروتکل IP نسخه ۴ یا ۶ استفاده می‌شود\&. یک بسته را از یک همتای نامشخص دریافت کرده و ممکن است یک یا چند بسته پاسخ به آن همتا ارسال نماید\&. این حالت به‌ویژه با گزینه fork سودمند است که در آن هر بسته دریافتی \- از همتاهای دلخواه \- توسط زیرفرآیند خودش مدیریت می‌شود\&. این امر رفتاری مشابه با سرورهای متداول مبتنی بر UDP مانند ntpd یا named را فراهم می‌سازد\&. .br لطفاً توجه داشته باشید که در صورت یکسان بودن آدرس IP فرستنده و گیرنده، بسته‌های پاسخ ممکن است به عنوان ترافیک ورودی دریافت شوند زیرا شماره پورتی برای تمایز سوکت‌ها وجود ندارد\&. .br این آدرس به خوبی با همتاهای آدرس IP\-SENDTO کار می‌کند (به بالا مراجعه کنید)\&. پروتکل ۲۵۵ از سوکت خام با قرار گرفتن سربرگ IP به عنوان بخشی از داده‌ها استفاده می‌کند\&. .br یادداشت مربوط به آدرس‌های RECVFROM را ببینید\&. .br گروههای گزینه: FD,SOCKET,IP4,IP6,CHILD,RANGE .br گزینههای کاربردی: pf, fork, range, ttl, broadcast .br همچنین ببینید: IP4\-RECVFROM, IP6\-RECVFROM, IP\-SENDTO, IP\-RECV, UDP\-RECVFROM, UNIX\-RECVFROM .IP "\fB\f(CWIP4\-RECVFROM:\fP\fP" مشابه IP\-RECVFROM، اما همیشه از IPv4 استفاده می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP4,CHILD,RANGE .br .IP "\fB\f(CWIP6\-RECVFROM:\fP\fP" مشابه IP\-RECVFROM، اما همیشه از IPv6 استفاده می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP6,CHILD,RANGE .br .IP .IP "\fB\f(CWIP\-RECV:\fP\fP" یک سوکت خام IP از باز می‌کند\&. بسته به گزینه pf، از پروتکل IP نسخه ۴ یا ۶ استفاده می‌شود\&. بسته‌ها را از چندین همتای نامشخص دریافت کرده و داده‌ها را ادغام می‌کند\&. هیچ پاسخی امکان‌پذیر نیست، این یک آدرس فقط‌خواندنی است، به گزینه‌های \-u و \-U و آدرس‌های دوگانه مراجعه کنید\&. این آدرس می‌تواند مثلاً توسط همتاهای آدرس socat IP\-SENDTO مخاطب قرار گیرد\&. پروتکل ۲۵۵ از سوکت خام با قرار گرفتن سربرگ IP به عنوان بخشی از داده‌ها استفاده می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP4,IP6,RANGE .br گزینههای کاربردی: pf, range .br همچنین ببینید: IP4\-RECV, IP6\-RECV, IP\-SENDTO, IP\-RECVFROM, UDP\-RECV, UNIX\-RECV .IP "\fB\f(CWIP4\-RECV:\fP\fP" مشابه IP\-RECV، اما همیشه از IPv4 استفاده می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP4,RANGE .br .IP "\fB\f(CWIP6\-RECV:\fP\fP" مشابه IP\-RECV، اما همیشه از IPv6 استفاده می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP6,RANGE .br .IP .IP "\fB\f(CWOPEN:\fP\fP" با استفاده از فراخوانی سیستمی \f(CWopen()\fP فایل را باز می‌کند (مثال)\&. این عملیات روی سوکت‌های دامنه یونیکس با شکست مواجه می‌شود\&. .br توجه: این نوع آدرس در حالت دوطرفه به‌ندرت کاربرد دارد\&. .br گروههای گزینه: FD,REG,NAMED,OPEN .br گزینههای کاربردی: creat, excl, noatime, nofollow, append, rdonly, wronly, lock, readbytes, ignoreeof .br همچنین ببینید: CREATE, GOPEN, UNIX\-CONNECT .IP .IP "\fB\f(CWOPENSSL::\fP\fP" تلاش می‌کند یک اتصال SSL به [سرویس TCP] روی [آدرس IP] با استفاده از TCP/IP نسخه ۴ یا ۶ بسته به مشخصات آدرس، تحلیل نام، یا گزینه pf برقرار نماید\&. .br توجه: تا نسخه 1\&.7\&.2\&.4 گواهی سرور فقط از نظر اعتبار در برابر مخزن گواهی سیستم یا cafile یا capath بررسی می‌شد، اما با نام سرور یا آدرس IP آن تطبیق داده نمی‌شد\&. از نسخه 1\&.7\&.3\&.0 به بعد socat گواهی همتا را برای تطابق با پارامتر یا مقدار گزینه openssl\-commonname بررسی می‌کند\&. دستور Socat تلاش می‌کند آن را با commonName در subject گواهی، و نام‌های DNS در افزونه subjectAltName گواهی تطبیق دهد\&. کاراکترهای عام (Wildcard) در گواهی پشتیبانی می‌شوند\&. .br گروههای گزینه: FD,SOCKET,IP4,IP6,TCP,OPENSSL,RETRY .br گزینههای کاربردی: min\-proto\-version, cipher, verify, commonname, cafile, capath, certificate, key, compress, bind, pf, connect\-timeout, sourceport, retry .br همچنین ببینید: OPENSSL\-LISTEN, TCP .IP .IP "\fB\f(CWOPENSSL\-LISTEN:\fP\fP" روی در tcp [سرویس TCP] گوش فرا می‌دهد\&. نسخه IP برابر با ۴ یا نسخه مشخص‌شده با pf است\&. هنگامی که یک اتصال پذیرفته شود، این آدرس مانند سرور SSL عمل می‌کند\&. .br توجه: احتمالاً می‌خواهید از گزینه certificate با این آدرس استفاده کنید\&. .br نکته: گواهی کلاینت فقط از نظر اعتبار در برابر cafile یا capath بررسی می‌شود، اما برای تطابق با نام کلاینت یا آدرس IP آن بررسی نمی‌گردد! .br گروههای گزینه: FD,SOCKET,IP4,IP6,TCP,LISTEN,OPENSSL,CHILD,RANGE,RETRY .br گزینههای کاربردی: pf, min\-proto\-version, cipher, verify, commonname, cafile, capath, certificate, key, compress, fork, bind, range, tcpwrap, su, reuseaddr, retry .br همچنین ببینید: OPENSSL, TCP\-LISTEN .IP .IP "\fB\f(CWOPENSSL\-DTLS\-CLIENT::\fP\fP" تلاش می‌کند یک اتصال DTLS به [سرویس UDP] روی [آدرس IP] با استفاده از UDP/IP نسخه ۴ یا ۶ بسته به مشخصات آدرس، تحلیل نام، یا گزینه pf برقرار کند\&. .br دستور \fBSocat\fP فیلدهای subjectAltName یا commonName در گواهی همتا را با گزینه openssl\-commonname آدرس‌ها یا نام میزبان تطبیق می‌دهد\&. کاراکترهای عام (Wildcard) در گواهی پشتیبانی می‌شوند\&. .br از گزینه \-b در \fBsocat\fP استفاده کنید تا دیتاگرام‌ها به اندازه کافی کوچک باشند تا با احتساب سربار در شبکه جا شوند\&. از گزینه \-T برای جلوگیری از معلق ماندن نامحدود در صورت قطع خاموش و بی‌صدای همتا استفاده کنید\&. .br گروههای گزینه: FD,SOCKET,IP4,IP6,OPENSSL,RETRY .br گزینههای کاربردی: min\-proto\-version, cipher, verify, commonname, cafile, capath, certificate, key, compress, bind, pf, sourceport, retry, rcvtimeo .br همچنین ببینید: OPENSSL\-DTLS\-SERVER, OPENSSL\-CONNECT, UDP\-CONNECT .IP .IP "\fB\f(CWOPENSSL\-DTLS\-SERVER:\fP\fP" روی در UDP [سرویس UDP] گوش فرا می‌دهد\&. نسخه IP برابر با ۴ یا نسخه مشخص‌شده با pf است\&. هنگامی که یک اتصال پذیرفته شود، این آدرس مانند سرور DTLS عمل می‌کند\&. .br توجه: احتمالاً می‌خواهید از گزینه certificate با این آدرس استفاده کنید\&. .br نکته: گواهی کلاینت فقط از نظر اعتبار در برابر cafile یا capath بررسی می‌شود، اما برای تطابق با نام کلاینت یا آدرس IP آن بررسی نمی‌گردد! از گزینه \-b در \fBsocat\fP استفاده کنید تا دیتاگرام‌ها به همراه سربار به اندازه کافی کوچک باشند تا در شبکه جا شوند\&. از گزینه \-T برای جلوگیری از معلق ماندن نامحدود در صورت قطع خاموش و بی‌صدای همتا استفاده کنید\&. .br گروههای گزینه: FD,SOCKET,IP4,IP6,LISTEN,OPENSSL,CHILD,RANGE,RETRY .br گزینههای کاربردی: pf, min\-proto\-version, cipher, verify, commonname, cafile, capath, certificate, key, compress, fork, bind, range, tcpwrap, su, reuseaddr, retry .br rcvtimeo .br همچنین ببینید: OPENSSL\-DTLS\-CLIENT, OPENSSL\-LISTEN, UDP\-LISTEN .IP .IP "\fB\f(CWPIPE:\fP\fP" اگر از قبل موجود باشد، باز می‌شود\&. اگر وجود نداشته باشد، یک لوله نام‌گذاری‌شده ایجاد و باز می‌گردد\&. از نسخه 1\&.4\&.3 در socat به بعد، لوله نام‌گذاری‌شده هنگام بسته شدن آدرس حذف می‌شود (اما به گزینه unlink\-close مراجعه کنید)\&. .br توجه: هنگامی که یک لوله هم برای خواندن و هم برای نوشتن استفاده شود، مانند یک سرویس اکو (پژواک) عمل می‌کند\&. .br توجه: هنگامی که یک لوله برای هر دوی خواندن و نوشتن استفاده شود، و socat سعی کند بایت‌های بیشتری از ظرفیت بافر لوله بنویسد (در لینوکس 2\&.4: ۲۰۴۸ بایت)، ممکن است socat مسدود شود\&. استفاده از گزینه socat، به عنوان مثال \f(CW\-b 2048\fP را مد نظر قرار دهید\&. .br گروههای گزینه: FD,NAMED,OPEN .br گزینههای کاربردی: rdonly, nonblock, group, user, mode, unlink\-early .br همچنین ببینید: unnamed pipe .IP "\fB\f(CWPIPE\fP\fP" یک لوله بی‌نام (unnamed pipe) ایجاد کرده و از آن برای خواندن و نوشتن استفاده می‌کند\&. این آدرس مانند یک اکو عمل می‌کند، زیرا هر آنچه در آن نوشته شود بلافاصله به عنوان داده خوانده‌شده ظاهر می‌گردد\&. .br توجه: هنگامی که socat سعی کند بایت‌های بیشتری از ظرفیت صف لوله بنویسد (در لینوکس 2\&.4: ۲۰۴۸ بایت)، ممکن است socat مسدود شود\&. به عنوان مثال، استفاده از گزینه \f(CW\-b 2048\fP را در نظر داشته باشید\&. .br گروههای گزینه: FD .br همچنین ببینید: named pipe, SOCKETPAIR .IP "\fB\f(CWSOCKETPAIR\fP\fP" یک جفت‌سوکت (socketpair) ایجاد کرده و از آن برای خواندن و نوشتن استفاده می‌کند\&. این آدرس مانند یک اکو عمل می‌کند، زیرا هر آنچه در آن نوشته شود بلافاصله به عنوان داده خوانده‌شده ظاهر می‌گردد\&. نوع سوکت پیشفرض دیتاگرام است، بنابراین مرزهای بسته‌ها حفظ می‌شود\&. .br گروههای گزینه: FD .br گزینههای کاربردی: socktype .br همچنین ببینید: unnamed pipe .IP .IP "\fB\f(CWPOSIXMQ\-READ:/\fP\fP" صف پیام POSIX مشخص‌شده را باز کرده یا ایجاد می‌کند و پیام‌ها (بسته‌ها) را می‌خواند\&. این آدرس مرزهای بسته‌ها را حفظ می‌نماید\&. .br این یک آدرس فقط‌خواندنی است، به گزینه‌های \-u و \-U و آدرس‌های دوگانه مراجعه کنید\&. .br دستور \fBSocat\fP این نوع آدرس را تنها روی لینوکس ارائه می‌دهد زیرا در آنجا POSIX MQ مبتنی بر توصیف‌گرهای فایل یونیکس است\&. .br گزینههای کاربردی: posixmq\-priority, unlink\-early, unlink\-close, o\-nonblock, o\-creat, o\-excl, umask .IP .IP "\fB\f(CWPOSIXMQ\-RECEIVE:/\fP\fP" .IP "\fB\f(CWPOSIXMQ\-RECV:/\fP\fP" صف پیام POSIX مشخص‌شده را باز کرده یا ایجاد می‌کند و یک پیام (بسته) را می‌خواند\&. .br این یک آدرس فقط‌خواندنی است\&. برای اطلاعات بیشتر POSIXMQ\-READ را ببینید\&. .br مثال: POSIX MQ recv with fork .br گزینههای کاربردی: posixmq\-priority, fork, max\-children, unlink\-early, unlink\-close, o\-creat, o\-excl, umask .IP .IP "\fB\f(CWPOSIXMQ\-SEND:/\fP\fP" صف پیام POSIX مشخص‌شده را باز کرده یا ایجاد می‌کند و پیام‌ها (بسته‌ها) را می‌نویسد\&. .br این یک آدرس فقط‌نوشتنی است\&. برای اطلاعات بیشتر POSIXMQ\-READ را ببینید\&. .br (مثال) .br گزینههای کاربردی: posixmq\-priority, posixmq\-flush, fork, max\-children, unlink\-early, unlink\-close, o\-creat, o\-excl, umask .IP .IP "\fB\f(CWPOSIXMQ\-WRITE:/\fP\fP" همان کار POSIXMQ\-SEND را انجام می‌دهد\&. .IP .IP "\fB\f(CWPOSIXMQ\-BIDIRECTIONAL:/mqueue\fP\fP" .IP "\fB\f(CWPOSIXMQ:/mqueue\fP\fP" صف پیام POSIX مشخص‌شده را بسته به زمینه در حالت خواندن و/یا نوشتن باز کرده یا ایجاد می‌نماید، سپس پیام‌ها (بسته‌ها) را می‌خواند و/یا می‌نویسد\&. در حالت دوطرفه این فقط یک سرویس اکوی دیگر است\&. .br برای اطلاعات بیشتر POSIXMQ\-READ و POSIXMQ\-SEND را ببینید\&. .IP .IP "\fB\f(CWPROXY:::\fP\fP" با استفاده از TCP/IP نسخه ۴ یا ۶ بسته به مشخصات آدرس، تحلیل نام، یا گزینه pf به یک سرور پروکسی HTTP روی پورت ۸۰۸۰ متصل می‌شود و یک درخواست CONNECT برای hostname:port ارسال می‌کند\&. اگر پروکسی اجازه دسترسی داده و اتصال به مقصد با موفقیت برقرار شود، انتقال داده بین socat و مقصد می‌تواند آغاز شود (مثال)\&. توجه داشته باشید که ترافیک لزوماً نباید HTTP باشد بلکه می‌تواند هر پروتکل دلخواهی باشد\&. .br گروههای گزینه: FD,SOCKET,IP4,IP6,TCP,HTTP,RETRY .br گزینههای کاربردی: proxyport, ignorecr, proxyauth, resolve, crnl, bind, connect\-timeout, mss, sourceport, retry .br همچنین ببینید: SOCKS, TCP .IP "\fB\f(CWPTY\fP\fP" یک شبه‌ترمینال (pty) ایجاد کرده و از سمت master (اصلی) آن استفاده می‌کند\&. فرآیند دیگر می‌تواند سمت slave (فرعی) pty را باز کرده و همانند یک خط سریال یا ترمینال از آن استفاده کند\&. (مثال)\&. اگر هر دو سازوکار ptmx و openpty در دسترس باشند، از ptmx استفاده می‌شود (POSIX)\&. .br گروههای گزینه: FD,NAMED,PTY,TERMIOS .br گزینههای کاربردی: link, openpty, wait\-slave, mode, user, group .br همچنین ببینید: UNIX\-LISTEN, PIPE, EXEC, SYSTEM, SHELL .IP "\fB\f(CWREADLINE\fP\fP" خطوط (مثال)\&. .br می‌توانید به جای آن از STDIO استفاده کنید\&. .IP "\fB\f(CWSCTP\-CONNECT::\fP\fP" یک اتصال جریانی (stream) با پروتکل SCTP به [آدرس IP] و [سرویس TCP] مشخص‌شده با استفاده از IP نسخه ۴ یا ۶ بسته به مشخصات آدرس، تحلیل نام، یا گزینه pf برقرار می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP4,IP6,SCTP,CHILD,RETRY .br گزینههای کاربردی: bind, pf, connect\-timeout, tos, mtudiscover, sctp\-maxseg, sctp\-nodelay, nonblock, sourceport, retry, readbytes .br همچنین ببینید: SCTP4\-CONNECT, SCTP6\-CONNECT, SCTP\-LISTEN, TCP\-CONNECT .IP "\fB\f(CWSCTP4\-CONNECT::\fP\fP" مشابه SCTP\-CONNECT، اما فقط از پروتکل IPv4 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP4,SCTP,CHILD,RETRY .br .IP "\fB\f(CWSCTP6\-CONNECT::\fP\fP" مشابه SCTP\-CONNECT، اما فقط از پروتکل IPv6 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP6,SCTP,CHILD,RETRY .br .IP "\fB\f(CWSCTP\-LISTEN:\fP\fP" روی [سرویس TCP] گوش فرا می‌دهد و یک اتصال SCTP را می‌پذیرد\&. نسخه IP برابر با ۴ یا نسخه مشخص‌شده با گزینه آدرس pf، گزینه socat (\-4, \-6)، یا متغیر محیطی SOCAT_DEFAULT_LISTEN_IP است\&. توجه داشته باشید که باز کردن این آدرس معمولاً تا زمان اتصال یک کلاینت مسدود می‌شود\&. .br گروههای گزینه: FD,SOCKET,LISTEN,CHILD,RANGE,IP4,IP6,SCTP,RETRY .br گزینههای کاربردی: crnl, fork, bind, range, tcpwrap, pf, max\-children, backlog, accept\-timeout, sctp\-maxseg, sctp\-nodelay, su, reuseaddr, retry .br همچنین ببینید: SCTP4\-LISTEN, SCTP6\-LISTEN, TCP\-LISTEN, SCTP\-CONNECT .IP "\fB\f(CWSCTP4\-LISTEN:\fP\fP" مشابه SCTP\-LISTEN، اما فقط از پروتکل IPv4 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,LISTEN,CHILD,RANGE,IP4,SCTP,RETRY .br .IP "\fB\f(CWSCTP6\-LISTEN:\fP\fP" مشابه SCTP\-LISTEN، اما فقط از پروتکل IPv6 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,LISTEN,CHILD,RANGE,IP6,SCTP,RETRY .br .IP .IP "\fB\f(CWSOCKET\-CONNECT:::\fP\fP" با استفاده از پارامتر اول و دوم ارائه‌شده برای سوکت و \f(CWSOCK_STREAM\fP (راهنمای man صفحه socket(2) را ببینید) یک سوکت جریانی ایجاد کرده و به remote\-address متصل می‌شود\&. دو پارامتر سوکت باید به وسیله اعداد صحیح (int) مشخص شوند\&. برای یافتن مقادیر مناسب به مستندات و فایل‌های هدر سیستم‌عامل خود مراجعه کنید\&. مقدار remote\-address باید نمایش داده‌ای از ساختار sockaddr بدون مؤلفه‌های sa_family و sa_len (در BSD) باشد\&. .br لطفاً توجه داشته باشید که علاوه بر گزینه‌های گروه‌های مشخص‌شده، هنگامی که گزینه \-g در socat را اعمال می‌کنید می‌توانید از گزینه‌های پروتکل‌های سطح بالاتر نیز استفاده نمایید\&. .br گروههای گزینه: FD,SOCKET,CHILD,RETRY .br گزینههای کاربردی: bind, setsockopt, .br همچنین ببینید: TCP, UDP\-CONNECT, UNIX\-CONNECT, SOCKET\-LISTEN, SOCKET\-SENDTO .IP "\fB\f(CWSOCKET\-DATAGRAM::::\fP\fP" با استفاده از سه پارامتر اول ارائه‌شده برای سوکت (راهنمای man صفحه socket(2) را ببینید) یک سوکت دیتاگرام ایجاد کرده و داده‌های خروجی را به remote\-address ارسال می‌کند\&. این سه پارامتر سوکت باید با اعداد صحیح (int) مشخص شوند\&. برای یافتن مقادیر مناسب به مستندات و فایل‌های هدر سیستم‌عامل خود مراجعه کنید\&. مقدار remote\-address باید نمایش داده‌ای از ساختار sockaddr بدون مؤلفه‌های sa_family و sa_len (در BSD) باشد\&. .br لطفاً توجه داشته باشید که علاوه بر گزینه‌های گروه‌های مشخص‌شده، هنگامی که گزینه \-g در socat را اعمال می‌کنید می‌توانید از گزینه‌های پروتکل‌های سطح بالاتر نیز استفاده نمایید\&. .br گروههای گزینه: FD,SOCKET,RANGE .br گزینههای کاربردی: bind, range, setsockopt, .br همچنین ببینید: UDP\-DATAGRAM, IP\-DATAGRAM, SOCKET\-SENDTO, SOCKET\-RECV, SOCKET\-RECVFROM .IP "\fB\f(CWSOCKET\-LISTEN:::\fP\fP" یک سوکت استریم با استفاده از پارامترهای اول و دوم ارائه‌شده برای سوکت و \f(CWSOCK_STREAM\fP (به socket(2) مراجعه کنید) ایجاد کرده و برای اتصالات ورودی روی local\-address منتظر می‌ماند\&. دو پارامتر سوکت باید با اعداد int مشخص شوند\&. برای یافتن مقادیر مناسب به مستندات سیستم‌عامل و فایل‌های include خود مراجعه کنید\&. مقدار local\-address باید نمایش داده‌ای از یک ساختار sockaddr بدون مولفه‌های sa_family و (در BSD) sa_len باشد\&. .br لطفاً توجه داشته باشید که علاوه بر گزینه‌های گروه‌های مشخص‌شده، در صورت استفاده از گزینه .B \-g در socat، می‌توانید از گزینه‌های پروتکل‌های سطح بالاتر نیز استفاده کنید\&. .br گروههای گزینه: FD,SOCKET,LISTEN,RANGE,CHILD,RETRY .br گزینههای کاربردی: setsockopt, setsockopt\-listen, .br همچنین ببینید: TCP, UDP\-CONNECT, UNIX\-CONNECT, SOCKET\-LISTEN, SOCKET\-SENDTO, SOCKET\-SENDTO .IP "\fB\f(CWSOCKET\-RECV::::\fP\fP" یک سوکت با استفاده از سه پارامتر ارائه‌شده برای سوکت (به socket(2) مراجعه کنید) ایجاد کرده و آن را به متصل (bind) می‌کند\&. داده‌های ورودی را دریافت می‌کند\&. این سه پارامتر باید با اعداد int مشخص شوند\&. برای یافتن مقادیر مناسب به مستندات سیستم‌عامل و فایل‌های include مراجعه کنید\&. مقدار local\-address باید نمایش داده‌ای از یک ساختار sockaddr بدون مولفه‌های sa_family و (در BSD) sa_len باشد\&. .br گروههای گزینه: FD,SOCKET,RANGE .br گزینههای کاربردی: range, setsockopt, setsockopt\-listen .br همچنین ببینید: UDP\-RECV, IP\-RECV, UNIX\-RECV, SOCKET\-DATAGRAM, SOCKET\-SENDTO, SOCKET\-RECVFROM .IP "\fB\f(CWSOCKET\-RECVFROM::::\fP\fP" یک سوکت با استفاده از سه پارامتر ارائه‌شده برای سوکت (به socket(2) مراجعه کنید) ایجاد کرده و آن را به متصل می‌کند\&. داده‌های دریافتی را تحویل گرفته و پاسخ‌ها را برای فرستنده ارسال می‌کند\&. سه پارامتر اول باید به صورت اعداد int مشخص شوند\&. برای یافتن مقادیر مناسب به مستندات سیستم‌عامل و فایل‌های include مراجعه کنید\&. مقدار local\-address باید نمایش داده‌ای از ساختار sockaddr بدون مولفه‌های sa_family و (در BSD) sa_len باشد\&. .br یادداشت مربوط به آدرس‌های RECVFROM را ببینید\&. .br گروههای گزینه: FD,SOCKET,CHILD,RANGE .br گزینههای کاربردی: fork, range, setsockopt, setsockopt\-listen .br همچنین ببینید: UDP\-RECVFROM, IP\-RECVFROM, UNIX\-RECVFROM, SOCKET\-DATAGRAM, SOCKET\-SENDTO, SOCKET\-RECV .IP "\fB\f(CWSOCKET\-SENDTO::::\fP\fP" یک سوکت با استفاده از سه پارامتر ارائه‌شده برای سوکت (به socket(2) مراجعه کنید) ایجاد می‌کند\&. داده‌های خروجی را به آدرس ارائه‌شده ارسال کرده و پاسخ‌ها را دریافت می‌نماید\&. این سه پارامتر باید به صورت اعداد int مشخص شوند\&. برای یافتن مقادیر مناسب به مستندات سیستم‌عامل و فایل‌های include مراجعه کنید\&. مقدار remote\-address باید نمایش داده‌ای از ساختار sockaddr بدون مولفه‌های sa_family و (در BSD) sa_len باشد\&. .br گروههای گزینه: FD,SOCKET .br گزینههای کاربردی: bind, setsockopt, setsockopt\-listen .br همچنین ببینید: UDP\-SENDTO, IP\-SENDTO, UNIX\-SENDTO, SOCKET\-DATAGRAM, SOCKET\-RECV SOCKET\-RECVFROM .IP "\fB\f(CWACCEPT\-FD:\fP\fP" انتظار یک سوکت در حال شنود را در دارد و یک یا (با گزینه fork) چند اتصال را می‌پذیرد\&. این نوع آدرس تحت کنترل systemd با \(dq\&حالت inetd\(dq مفید است\&. .br مثال: (example) .br گروههای گزینه: FD, SOCKET, TCP, CHILD, RETRY .br گزینههای کاربردی: fork, range, sourceport, lowport, tcpwrap .IP "\fB\f(CWSOCKS4:::\fP\fP" از طریق [آدرس IP] به [آدرس IPv4] روی [سرویس TCP]، با استفاده از پروتکل socks نسخه ۴ روی IP نسخه ۴ یا ۶ بسته به مشخصات آدرس، تحلیل نام یا گزینه pf متصل می‌شود (مثال)\&. .br گروههای گزینه: FD,SOCKET,IP4,IP6,TCP,SOCKS4,RETRY .br گزینههای کاربردی: socksuser, socksport, sourceport, pf, retry .br همچنین ببینید: SOCKS5, SOCKS4A, PROXY, TCP .IP .IP "\fB\f(CWSOCKS4A:::\fP\fP" مانند SOCKS4 است، اما از پروتکل socks نسخه 4a استفاده می‌کند و بدین ترتیب تحلیل نام میزبان را به سرور socks واگذار می‌نماید\&. .br گروههای گزینه: FD,SOCKET,IP4,IP6,TCP,SOCKS4,RETRY .br .IP .IP "\fB\f(CWSOCKS5\-CONNECT::::\fP\fP" .IP "\fB\f(CWSOCKS5\-CONNECT:::\fP\fP" از طریق [آدرس IP] به [آدرس IPv4] روی [سرویس TCP]، با استفاده از پروتکل socks نسخه ۵ بر روی TCP متصل می‌شود\&. در حال حاضر هیچ سازوکار احراز هویتی ارائه نشده است\&. .br گروههای گزینه: FD, SOCKET, IP4, IP6, TCP, CHILD, RETRY .br گزینههای کاربردی: socksport, sourceport, pf, retry .br همچنین ببینید: SOCKS5\-LISTEN, SOCKS4, SOCKS4A, PROXY, TCP .IP .IP "\fB\f(CWSOCKS5\-LISTEN::::\fP\fP" .IP "\fB\f(CWSOCKS5\-LISTEN:::\fP\fP" به [آدرس IP] با استفاده از پروتکل socks نسخه ۵ بر روی TCP متصل می‌شود و آن را وادار به شنود برای اتصالات ورودی روی [سرویس TCP] و متصل شدن به <\-listen\-host> [آدرس IPv4] می‌کند\&. در حال حاضر هیچ سازوکار احراز هویتی ارائه نشده است\&. .br گروههای گزینه: FD, SOCKET, IP4, IP6, TCP, CHILD, RETRY .br گزینههای کاربردی: sourceport, pf, retry .br همچنین ببینید: SOCKS5\-CONNECT, .IP .IP "\fB\f(CWSTDERR\fP\fP" از توصیف‌کننده فایل ۲ استفاده می‌کند\&. .br این یک آدرس فقط‌نوشتنی است؛ به گزینه‌های .B \-u و .B \-U و آدرس‌های دوگانه مراجعه کنید\&. .br گروههای گزینه: FD (TERMIOS,REG,SOCKET) .br همچنین ببینید: FD .IP "\fB\f(CWSTDIN\fP\fP" از توصیف‌کننده فایل ۰ استفاده می‌کند\&. .br این یک آدرس فقط‌خواندنی است؛ به گزینه‌های .B \-u و .B \-U و آدرس‌های دوگانه مراجعه کنید\&. .br گروههای گزینه: FD (TERMIOS,REG,SOCKET) .br گزینههای کاربردی: readbytes .br همچنین ببینید: FD .IP "\fB\f(CWSTDIO\fP\fP" از توصیف‌کننده فایل ۰ برای خواندن و ۱ برای نوشتن استفاده می‌کند\&. .br گروههای گزینه: FD (TERMIOS,REG,SOCKET) .br گزینههای کاربردی: readbytes .br همچنین ببینید: FD .IP "\fB\f(CWSTDOUT\fP\fP" از توصیف‌کننده فایل ۱ استفاده می‌کند\&. .br این یک آدرس فقط‌نوشتنی است؛ به گزینه‌های .B \-u و .B \-U و آدرس‌های دوگانه مراجعه کنید\&. .br گروههای گزینه: FD (TERMIOS,REG,SOCKET) .br همچنین ببینید: FD .IP "\fB\f(CWSHELL:\fP\fP" یک زیرپردازه منشعب می‌کند که ارتباط با پردازه والد خود را برقرار ساخته و برنامه مشخص‌شده را با پوسته پیکربندی‌شده ($SHELL) فراخوانی می‌کند\&. توجه داشته باشید که [رشته] نباید شامل \(cq\&,\(cq\& یا \(dq\&!!\(dq\& باشد، و ممکن است لازم باشد کاراکترهای متای پوسته محافظت شوند\&. پس از شروع موفقیت‌آمیز برنامه، \fBsocat\fP داده‌ها را در stdin پردازه می‌نویسد و از stdout آن می‌خواند\&. .br گروههای گزینه: FD,SOCKET,EXEC,FORK,TERMIOS .br گزینههای کاربردی: path, fdin, fdout, chroot, su, su\-d, nofork, socktype, pty, stderr, ctty, setsid, pipes, umask, sigint, sigquit .br همچنین ببینید: EXEC, SYSTEM .IP "\fB\f(CWSYSTEM:\fP\fP" یک زیرپردازه منشعب می‌کند که ارتباط با پردازه والد خود را برقرار ساخته و برنامه مشخص‌شده را با \f(CWsystem()\fP فراخوانی می‌کند\&. لطفاً توجه داشته باشید که [رشته] نباید شامل \(cq\&,\(cq\& یا \(dq\&!!\(dq\& باشد، و ممکن است لازم باشد کاراکترهای متای پوسته محافظت شوند\&. پس از اجرای موفق برنامه، \fBsocat\fP داده‌ها را در stdin پردازه می‌نویسد و از stdout آن می‌خواند\&. .br گروههای گزینه: FD,SOCKET,EXEC,FORK,TERMIOS .br گزینههای کاربردی: path, fdin, fdout, chroot, su, su\-d, nofork, socktype, pty, stderr, ctty, setsid, pipes, umask, sigint, sigquit, netns .br همچنین ببینید: EXEC, SHELL .IP "\fB\f(CWTCP::\fP\fP" به [سرویس TCP] در [آدرس IP] با استفاده از TCP/IP نسخه ۴ یا ۶ بسته به مشخصات آدرس، تحلیل نام یا گزینه pf متصل می‌شود\&. .br گروههای گزینه: FD,SOCKET,IP4,IP6,TCP,RETRY .br گزینههای کاربردی: connect\-timeout, retry, sourceport, netns, crnl, bind, pf, tos, mtudiscover, mss, nodelay, nonblock, readbytes .br همچنین ببینید: TCP4, TCP6, TCP\-LISTEN, UDP, SCTP\-CONNECT, UNIX\-CONNECT .IP "\fB\f(CWTCP4::\fP\fP" مانند TCP است، اما فقط از پروتکل IPv4 پشتیبانی می‌کند (مثال)\&. .br گروههای گزینه: FD,SOCKET,IP4,TCP,RETRY .br .IP "\fB\f(CWTCP6::\fP\fP" مانند TCP است، اما فقط از پروتکل IPv6 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP6,TCP,RETRY .br .IP "\fB\f(CWTCP\-LISTEN:\fP\fP" روی [سرویس TCP] شنود می‌کند و یک اتصال TCP/IP را می‌پذیرد\&. نسخه IP برابر ۴ یا نسخه‌ای است که با گزینه آدرس pf، گزینه socat (\-4, \-6) یا متغیر محیطی SOCAT_DEFAULT_LISTEN_IP مشخص شده است\&. توجه داشته باشید که باز کردن این آدرس معمولاً تا زمان اتصال یک کلاینت مسدود می‌شود\&. .br گروههای گزینه: FD,SOCKET,LISTEN,CHILD,RANGE,IP4,IP6,TCP,RETRY .br گزینههای کاربردی: crnl, fork, bind, range, tcpwrap, pf, max\-children, backlog, accept\-timeout, mss, su, reuseaddr, retry, cool\-write .br همچنین ببینید: TCP4\-LISTEN, TCP6\-LISTEN, UDP\-LISTEN, SCTP\-LISTEN, UNIX\-LISTEN, OPENSSL\-LISTEN, TCP\-CONNECT .IP "\fB\f(CWTCP4\-LISTEN:\fP\fP" مانند TCP\-LISTEN است، اما فقط از پروتکل IPv4 پشتیبانی می‌کند (مثال)\&. .br گروههای گزینه: FD,SOCKET,LISTEN,CHILD,RANGE,IP4,TCP,RETRY .br .IP "\fB\f(CWTCP6\-LISTEN:\fP\fP" مانند TCP\-LISTEN است، اما فقط از پروتکل IPv6 پشتیبانی می‌کند\&. .br گزینههای کاربردی افزوده: ipv6only .br گروههای گزینه: FD,SOCKET,LISTEN,CHILD,RANGE,IP6,TCP,RETRY .br .IP "\fB\f(CWTUN[:/]\fP\fP" یک دستگاه TUN/TAP لینوکس ایجاد کرده و به صورت اختیاری آدرس و نت‌ماسک تعیین‌شده توسط پارامترها را به آن اختصاص می‌دهد\&. رابط شبکه حاصل تقریباً برای استفاده توسط سایر پردازه‌ها آماده است؛ socat به بخش سیم آن (\(dq\&wire side\(dq\&) خدمت‌رسانی می‌کند\&. این آدرس نیاز به دسترسی خواندن و نوشتن در دستگاه تکثیر تونل، معمولاً \f(CW/dev/net/tun\fP دارد، و همچنین نیازمند مجوز برای تنظیم برخی فراخوانی‌های \f(CWioctl()\fP است\&. \fBگزینه iff\-up برای فعال‌سازی فوری رابط لازم است!\fP .br نکته: اگر قصد انتقال بسته‌ها بین دو بخش سیم (\(dq\&wire sides\(dq\&) در Socat را دارید، به پروتکلی نیاز دارید که مرزهای بسته را حفظ کند، مانند UDP؛ ممکن است TCP با گزینه nodelay کار کند\&. .br گروههای گزینه: FD,NAMED,OPEN,TUN .br گزینههای کاربردی: iff\-up, tun\-device, tun\-name, tun\-type, iff\-no\-pi, netns .br همچنین ببینید: ip\-recv .IP .IP "\fB\f(CWUDP::\fP\fP" به [سرویس UDP] در [آدرس IP] با استفاده از UDP/IP نسخه ۴ یا ۶ بسته به مشخصات آدرس، تحلیل نام یا گزینه pf متصل می‌شود\&. .br لطفاً توجه داشته باشید که به دلیل ویژگی‌های پروتکل UDP، اتصال واقعی برقرار نمی‌شود؛ داده‌ها باید برای `اتصال\(cq\& به سرور ارسال شوند، و هیچ وضعیت پایان فایلی (end\-of\-file) قابل انتقال نیست\&. .br گروههای گزینه: FD,SOCKET,IP4,IP6 .br گزینههای کاربردی: ttl, tos, bind, sourceport, pf .br همچنین ببینید: UDP4, UDP6, UDP\-LISTEN, TCP, IP .IP "\fB\f(CWUDP4::\fP\fP" مانند UDP است، اما فقط از پروتکل IPv4 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP4 .br .IP "\fB\f(CWUDP6::\fP\fP" مانند UDP است، اما فقط از پروتکل IPv6 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP6 .br .IP "\fB\f(CWUDP\-DATAGRAM:
:\fP\fP" داده‌های خروجی را به آدرس مشخص‌شده ارسال می‌کند که ممکن است به‌ویژه یک آدرس همگانی (broadcast) یا چندپخشی (multicast) باشد\&. بسته‌های ورودی به سوکت محلی فقط زمانی برای پورت دوردستِ صحیح بررسی می‌شوند که از گزینه sourceport استفاده شده باشد (این یک تغییر در نگارش 1\&.7\&.4\&.0 از \fBSocat\fP است) و در صورتی که آدرس‌های مبدأ آن‌ها با گزینه‌های RANGE یا TCPWRAP مطابقت داشته باشد\&. این نوع آدرس می‌تواند برای نمونه برای پیاده‌سازی ارتباطات متقارن یا نامتقارن همگانی یا چندپخشی استفاده شود\&. .br گروههای گزینه: FD,SOCKET,IP4,IP6,RANGE .br گزینههای کاربردی: bind, range, tcpwrap, broadcast, ip\-multicast\-loop, ip\-multicast\-ttl, ip\-multicast\-if, ip\-add\-membership, ip\-add\-source\-membership, ipv6\-join\-group, ipv6\-join\-source\-group, ttl, tos, sourceport, pf .br همچنین ببینید: UDP4\-DATAGRAM, UDP6\-DATAGRAM, UDP\-SENDTO, UDP\-RECVFROM, UDP\-RECV, UDP\-CONNECT, UDP\-LISTEN, IP\-DATAGRAM .IP "\fB\f(CWUDP4\-DATAGRAM:
:\fP\fP" مانند UDP\-DATAGRAM است، اما فقط از پروتکل IPv4 پشتیبانی می‌کند (مثال ۱، مثال ۲)\&. .br گروههای گزینه: FD,SOCKET,IP4, RANGE .IP "\fB\f(CWUDP6\-DATAGRAM:
:\fP\fP" مانند UDP\-DATAGRAM است، اما فقط از پروتکل IPv6 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP6,RANGE .IP "\fB\f(CWUDP\-LISTEN:\fP\fP" منتظر یک بسته UDP/IP ورودی روی [سرویس UDP] می‌ماند و مجدداً به فرستنده `متصل می‌شود\(cq\&. نسخه IP پذیرفته‌شده ۴ یا نسخه‌ای است که با گزینه pf مشخص شده است\&. لطفاً توجه داشته باشید که به دلیل ویژگی‌های پروتکل UDP، هیچ اتصال واقعی برقرار نمی‌شود؛ داده‌ها باید ابتدا از سمت طرف مقابل برسند، و هیچ وضعیت پایان فایلی قابل انتقال نیست\&. توجه داشته باشید که باز کردن این آدرس معمولاً تا زمان اتصال یک کلاینت مسدود می‌شود\&. .br گروههای گزینه: FD,SOCKET,LISTEN,CHILD,RANGE,IP4,IP6 .br گزینههای کاربردی: fork, bind, range, pf .br همچنین ببینید: UDP, UDP4\-LISTEN, UDP6\-LISTEN, TCP\-LISTEN .IP "\fB\f(CWUDP4\-LISTEN:\fP\fP" مانند UDP\-LISTEN است، اما فقط از پروتکل IPv4 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,LISTEN,CHILD,RANGE,IP4 .br .IP "\fB\f(CWUDP6\-LISTEN:\fP\fP" مانند UDP\-LISTEN است، اما فقط از پروتکل IPv6 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,LISTEN,CHILD,RANGE,IP6 .br .IP "\fB\f(CWUDP\-SENDTO::\fP\fP" با سوکت همتای مشخص‌شده که توسط [سرویس UDP] روی [آدرس IP] تعیین شده است، با استفاده از UDP/IP نسخه ۴ یا ۶ بسته به مشخصات آدرس، تحلیل نام یا گزینه pf ارتباط برقرار می‌کند\&. این آدرس بسته‌ها را فقط به آن سوکت همتا ارسال کرده و از آن بسته دریافت می‌کند\&. این آدرس عملاً یک کلاینت دیتاگرام را پیاده‌سازی می‌کند\&. با همتاهای آدرس UDP\-RECVFROM و UDP\-RECV در socat به خوبی کار می‌کند\&. زمانی که ممکن است همتا ابتدا داده ارسال کند، UDP\-DATAGRAM ارجح است\&. .br گروههای گزینه: FD,SOCKET,IP4,IP6 .br گزینههای کاربردی: ttl, tos, bind, sourceport, pf .br همچنین ببینید: UDP4\-SENDTO, UDP6\-SENDTO, UDP\-RECVFROM, UDP\-RECV, UDP\-CONNECT, UDP\-LISTEN, IP\-SENDTO .IP "\fB\f(CWUDP4\-SENDTO::\fP\fP" مانند UDP\-SENDTO است، اما فقط از پروتکل IPv4 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP4 .IP "\fB\f(CWUDP6\-SENDTO::\fP\fP" مانند UDP\-SENDTO است، اما فقط از پروتکل IPv6 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP6 .IP .IP "\fB\f(CWUDP\-RECVFROM:\fP\fP" یک سوکت UDP روی [سرویس UDP] با استفاده از UDP/IP نسخه ۴ یا ۶ بسته به گزینه pf ایجاد می‌کند\&. یک بسته را از یک همتای نامشخص دریافت کرده و ممکن است یک یا چند بسته پاسخ به آن همتا بفرستد\&. این حالت به‌ویژه با گزینه fork سودمند است که در آن هر بسته دریافتی \- از همتاهای دلخواه \- توسط زیرپردازه خودش مدیریت می‌شود\&. این ویژگی رفتاری شبیه به سرورهای معمول مبتنی بر UDP مانند ntpd یا named را فراهم می‌کند\&. این آدرس با همتاهای آدرس UDP\-SENDTO در socat به خوبی کار می‌کند\&. .br نکته: هنگامی که آدرس دوم قبل از ورود به حلقه انتقال با شکست مواجه شود، بسته دور انداخته می‌شود\&. از گزینه retry یا forever روی آدرس دوم برای جلوگیری از دست رفتن داده‌ها استفاده کنید\&. هنگامی که آدرس همتا را می‌دانید، UDP\-DATAGRAM ارجح است\&. .br گروههای گزینه: FD,SOCKET,IP4,IP6,CHILD,RANGE .br گزینههای کاربردی: fork, ttl, tos, bind, sourceport, pf .br همچنین ببینید: UDP4\-RECVFROM, UDP6\-RECVFROM, UDP\-SENDTO, UDP\-RECV, UDP\-CONNECT, UDP\-LISTEN, IP\-RECVFROM, UNIX\-RECVFROM .IP "\fB\f(CWUDP4\-RECVFROM:\fP\fP" مانند UDP\-RECVFROM است، اما فقط از پروتکل IPv4 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP4,CHILD,RANGE .IP "\fB\f(CWUDP6\-RECVFROM:\fP\fP" مانند UDP\-RECVFROM است، اما فقط از پروتکل IPv6 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP6,CHILD,RANGE .IP .IP "\fB\f(CWUDP\-RECV:\fP\fP" یک سوکت UDP روی [سرویس UDP] با استفاده از UDP/IP نسخه ۴ یا ۶ بسته به گزینه pf ایجاد می‌کند\&. بسته‌ها را از چندین همتای نامشخص دریافت کرده و داده‌ها را ادغام می‌کند\&. هیچ پاسخی امکان‌پذیر نیست\&. این آدرس برای مثال با همتاهای آدرس UDP\-SENDTO در socat به خوبی کار می‌کند؛ رفتاری شبیه به یک سرور syslog دارد\&. .br این یک آدرس فقط‌خواندنی است؛ به گزینه‌های .B \-u و .B \-U و آدرس‌های دوگانه مراجعه کنید\&. .br نکته: اگر به گزینه fork نیاز دارید، به جای آن از UDP\-RECVFROM در حالت یک‌طرفه (با گزینه \-u) استفاده کنید\&. .br گروههای گزینه: FD,SOCKET,IP4,IP6,RANGE .br گزینههای کاربردی: pf, bind, sourceport, ttl, tos .br همچنین ببینید: UDP4\-RECV, UDP6\-RECV, UDP\-SENDTO, UDP\-RECVFROM, UDP\-CONNECT, UDP\-LISTEN, IP\-RECV, UNIX\-RECV .IP "\fB\f(CWUDP4\-RECV:\fP\fP" مانند UDP\-RECV است، اما فقط از پروتکل IPv4 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP4,RANGE .IP "\fB\f(CWUDP6\-RECV:\fP\fP" مانند UDP\-RECV است، اما فقط از پروتکل IPv6 پشتیبانی می‌کند\&. .br گروههای گزینه: FD,SOCKET,IP6,RANGE .IP .IP "\fB\f(CWUDPLITE\-CONNECT::\fP\fP" .IP "\fB\f(CWUDPLITE4\-CONNECT::\fP\fP" .IP "\fB\f(CWUDPLITE6\-CONNECT::\fP\fP" .IP "\fB\f(CWUDPLITE\-DATAGRAM:
:\fP\fP" .IP "\fB\f(CWUDPLITE4\-DATAGRAM:
:\fP\fP" .IP "\fB\f(CWUDPLITE6\-DATAGRAM:
:\fP\fP" .IP "\fB\f(CWUDPLITE\-LISTEN:\fP\fP" .IP "\fB\f(CWUDPLITE4\-LISTEN:\fP\fP" .IP "\fB\f(CWUDPLITE6\-LISTEN:\fP\fP" .IP "\fB\f(CWUDPLITE\-SENDTO::\fP\fP" .IP "\fB\f(CWUDPLITE4\-SENDTO::\fP\fP" .IP "\fB\f(CWUDPLITE6\-SENDTO::\fP\fP" .IP "\fB\f(CWUDPLITE\-RECVFROM:\fP\fP" .IP "\fB\f(CWUDPLITE4\-RECVFROM:\fP\fP" .IP "\fB\f(CWUDPLITE6\-RECVFROM:\fP\fP" .IP "\fB\f(CWUDPLITE\-RECV:\fP\fP" .IP "\fB\f(CWUDPLITE4\-RECV:\fP\fP" .IP "\fB\f(CWUDPLITE6\-RECV:\fP\fP" آدرس‌های UDPLITE تقریباً مشابه آدرس‌های مرتبط UDP هستند اما از پروتکل UDP\-Lite استفاده می‌کنند و دارای گروه گزینه اضافی UDPLITE می‌باشند\&. .br .IP .IP "\fB\f(CWUNIX\-CONNECT:\fP\fP" با این فرض که یک سوکت دامنه یونیکس است، به آن متصل می‌شود\&. اگر وجود نداشته باشد، این یک خطا است؛ اگر یک سوکت دامنه یونیکس نباشد، این یک خطا است؛ اگر یک سوکت دامنه یونیکس باشد اما هیچ پردازه‌ای در حال شنود نباشد، این یک خطا است\&. .br گروههای گزینه: FD,SOCKET,NAMED,RETRY,UNIX .br گزینههای کاربردی: bind .br همچنین ببینید: UNIX\-LISTEN, UNIX\-SENDTO, TCP .IP .IP "\fB\f(CWUNIX\-LISTEN:\fP\fP" با استفاده از یک سوکت استریم دامنه یونیکس روی شنود کرده و یک اتصال را می‌پذیرد\&. اگر وجود داشته باشد و یک سوکت نباشد، این یک خطا است\&. اگر وجود داشته باشد و یک سوکت دامنه یونیکس باشد، متصل شدن (bind) به این آدرس شکست می‌خورد (از گزینه unlink\-early استفاده کنید!)\&. توجه داشته باشید که باز کردن این آدرس معمولاً تا زمان اتصال یک کلاینت مسدود می‌شود\&. از نسخه 1\&.4\&.3 در socat به بعد، با بسته شدن این آدرس مدخل فایل‌سیستم حذف می‌شود (اما گزینه unlink\-close را ببینید) (مثال)\&. .br گروههای گزینه: FD,SOCKET,NAMED,LISTEN,CHILD,RETRY,UNIX .br گزینههای کاربردی: fork, umask, mode, user, group, unlink\-early .br همچنین ببینید: UNIX\-CONNECT, UNIX\-RECVFROM, UNIX\-RECV, TCP\-LISTEN .IP .IP "\fB\f(CWUNIX\-SENDTO:\fP\fP" با سوکت همتای مشخص‌شده که توسط [] تعریف شده، با این فرض که یک سوکت دیتاگرام دامنه یونیکس است، ارتباط برقرار می‌کند\&. بسته‌ها را فقط به آن سوکت همتا ارسال کرده و فقط از آن بسته دریافت می‌کند\&. لطفاً توجه داشته باشید که ممکن است لازم باشد سوکت محلی را به یک آدرس متصل (bind) کنید (مانند \f(CW/tmp/sock1\fP که نباید از قبل وجود داشته باشد)\&. این نوع آدرس با همتاهای آدرس UNIX\-RECVFROM و UNIX\-RECV در socat به خوبی کار می‌کند\&. .br گروههای گزینه: FD,SOCKET,NAMED,UNIX .br گزینههای کاربردی: bind .br همچنین ببینید: UNIX\-RECVFROM, UNIX\-RECV, UNIX\-CONNECT, UDP\-SENDTO, IP\-SENDTO .IP .IP "\fB\f(CWUNIX\-RECVFROM:\fP\fP" یک سوکت دیتاگرام دامنه یونیکس [] ایجاد می‌کند\&. یک بسته را دریافت کرده و ممکن است یک یا چند بسته پاسخ به آن همتا ارسال نماید\&. این حالت به‌ویژه با گزینه fork سودمند است که در آن هر بسته دریافتی \- از همتاهای دلخواه \- توسط زیرپردازه خودش مدیریت می‌شود\&. این آدرس با همتاهای آدرس UNIX\-SENDTO در socat به خوبی کار می‌کند\&. .br گروههای گزینه: FD,SOCKET,NAMED,CHILD,UNIX .br یادداشت مربوط به آدرس‌های RECVFROM را ببینید\&. .br گزینههای کاربردی: fork .br umask .br همچنین ببینید: UNIX\-SENDTO, UNIX\-RECV, UNIX\-LISTEN, UDP\-RECVFROM, IP\-RECVFROM .IP .IP "\fB\f(CWUNIX\-RECV:\fP\fP" یک سوکت دیتاگرام دامنه یونیکس [] ایجاد می‌کند\&. بسته‌ها را از چندین همتای نامشخص دریافت کرده و داده‌ها را ادغام می‌نماید\&. هیچ پاسخی امکان‌پذیر نیست، این یک آدرس فقط‌خواندنی است؛ به گزینه‌های .B \-u و .B \-U و آدرس‌های دوگانه مراجعه کنید\&. برای مثال می‌تواند توسط همتاهای آدرس UNIX\-SENDTO در socat آدرس‌دهی شود\&. رفتاری شبیه به یک سرور syslog دارد\&. .br گروههای گزینه: FD,SOCKET,NAMED,UNIX .br گزینههای کاربردی: umask .br همچنین ببینید: UNIX\-SENDTO, UNIX\-RECVFROM, UNIX\-LISTEN, UDP\-RECV, IP\-RECV .IP .IP "\fB\f(CWUNIX\-CLIENT:\fP\fP" با سوکت همتای مشخص‌شده که توسط [] تعریف شده است، با این فرض که یک سوکت دامنه یونیکس است ارتباط برقرار می‌کند\&. ابتدا برای اتصال تلاش می‌کند و در صورت شکست، فرض می‌کند که یک سوکت دیتاگرام است؛ بنابراین از هر دو نوع پشتیبانی می‌نماید\&. .br گروههای گزینه: FD,SOCKET,NAMED,UNIX .br گزینههای کاربردی: bind .br همچنین ببینید: UNIX\-CONNECT, UNIX\-SENDTO, GOPEN .IP .IP "\fB\f(CWVSOCK\-CONNECT::\fP\fP" یک اتصال استریم VSOCK به [VSOCK cid] و [VSOCK port] مشخص‌شده برقرار می‌کند\&. .br گروههای گزینه: FD,SOCKET,CHILD,RETRY .br گزینههای کاربردی: bind, connect\-timeout, retry, readbytes .br همچنین ببینید: VSOCK\-LISTEN, .IP .IP "\fB\f(CWVSOCK\-LISTEN:\fP\fP" روی [VSOCK port] شنود کرده و یک اتصال VSOCK را می‌پذیرد\&. توجه داشته باشید که باز کردن این آدرس معمولاً تا زمان اتصال یک کلاینت مسدود می‌شود\&. .br گروههای گزینه: FD,SOCKET,LISTEN,CHILD,RETRY .br گزینههای کاربردی: fork, bind, max\-children, backlog, su, reuseaddr, retry .br همچنین ببینید: VSOCK\-CONNECT .IP .IP "\fB\f(CWABSTRACT\-CONNECT:\fP\fP" .IP "\fB\f(CWABSTRACT\-LISTEN:\fP\fP" .IP "\fB\f(CWABSTRACT\-SENDTO:\fP\fP" .IP "\fB\f(CWABSTRACT\-RECVFROM:\fP\fP" .IP "\fB\f(CWABSTRACT\-RECV:\fP\fP" .IP "\fB\f(CWABSTRACT\-CLIENT:\fP\fP" آدرس‌های ABSTRACT تقریباً با آدرس‌های مرتبط UNIX یکسان هستند، به جز اینکه سوکت‌های مبتنی بر فایل‌سیستم را آدرس‌دهی نمی‌کنند، بلکه یک فضای آدرس دامنه یونیکس جایگزین را مخاطب قرار می‌دهند\&. برای دستیابی به این منظور، رشته‌های آدرس سوکت در داخل با \(dq\&\e0\(dq\& پیشوندگذاری می‌شوند\&. این ویژگی (فقط؟) در لینوکس موجود است\&. گروه‌های گزینه مانند آدرس‌های مرتبط UNIX هستند، به جز اینکه آدرس‌های ABSTRACT عضو گروه NAMED نیستند\&. .br گزینههای کاربردی: netns .PP .SH "گزینههای آدرس (ADDRESS OPTIONS)" .PP گزینه‌های آدرس را می‌توان روی مشخصات آدرس اعمال کرد تا بر فرآیند باز کردن آدرس‌ها و ویژگی‌های کانال‌های داده حاصل تأثیر بگذارند\&. .PP به دلایل فنی، نمی‌توان هر گزینه‌ای را روی هر نوع آدرسی اعمال کرد؛ به عنوان مثال، اعمال یک گزینه سوکت روی یک فایل معمولی با شکست مواجه خواهد شد\&. برای تشخیص زودهنگام اکثر ترکیب‌های بی‌استفاده در همان مرحله باز کردن، مفهوم \fIگروه‌های گزینه (option groups)\fP معرفی شد\&. هر گزینه به یک یا چند گروه گزینه تعلق دارد\&. گزینه‌ها تنها با انواع آدرسی قابل استفاده هستند که دست‌کم از یکی از گروه‌های گزینه آن‌ها پشتیبانی کنند (البته گزینه \-g را نیز ببینید)\&. .PP گزینه‌های آدرس دارای انواع داده‌ای هستند که مقادیرشان باید با آن‌ها مطابقت داشته باشد\&. هر گزینه آدرس تنها از یک کلمه کلیدی یا یک کلمه کلیدی به همراه \(dq\&=value\(dq\& تشکیل شده است، که در آن value باید با نوع داده گزینه مطابقت داشته باشد\&. برخی گزینه‌های آدرس پارامترهای فراخوانی‌های سیستمی را دستکاری می‌کنند؛ به عنوان مثال، گزینه sync فلگ \f(CWO_SYNC\fP را در فراخوانی \f(CWopen()\fP تنظیم می‌کند\&. گزینه‌های دیگر موجب یک فراخوانی سیستمی یا کتابخانه‌ای می‌شوند؛ به عنوان مثال، با گزینه `ttl=value\(cq\& فراخوانی \f(CWsetsockopt(fd, SOL_IP, IP_TTL, value, sizeof(int))\fP اعمال می‌شود\&. گزینه‌های دیگر متغیرهای داخلی \fBsocat\fP را تنظیم می‌کنند که در حین انتقال داده استفاده می‌شوند؛ به عنوان مثال، `crnl\(cq\& تبدیل‌های صریح نویسه‌ها را اعمال می‌کند\&. تعداد کمی از گزینه‌ها پیاده‌سازی‌های پیچیده‌تری دارند؛ به عنوان مثال، su\-d (مخفف substuser\-delayed) برخی اطلاعات کاربر و گروه را استعلام و ذخیره کرده، و بعداً پس از فراخوانی احتمالی \f(CWchroot()\fP اعمال می‌کند\&. .PP اگر چندین گزینه برای یک آدرس مشخص شود، ترتیب آن‌ها در مشخصات آدرس (تقریباً) هیچ تأثیری بر ترتیب اجرا یا اعمال آن‌ها ندارد\&. در عوض، \fBsocat\fP یک مدل داخلی \fIفاز گزینه‌ها (option phase)\fP دارد که تلاش می‌کند گزینه‌ها را در یک ترتیب مفید قرار دهد\&. برخی گزینه‌ها در قالب‌های متفاوتی وجود دارند (مانند unlink، unlink\-early، unlink\-late) تا زمان اجرای آن‌ها را کنترل کنند\&. .PP اگر یک گزینه بیش از یک بار با مقادیر یکسان یا متفاوت در مشخصات یک آدرس تعیین شود، اثر آن به نوع گزینه بستگی دارد\&. گزینه‌هایی که منجر به فراخوانی توابعی مانند \f(CWsetsockopt()\fP می‌شوند، فراخوانی‌های متعددی را در پی دارند\&. در مورد گزینه‌هایی که پارامترهایی را برای یک فراخوانی الزامی مانند \f(CWopen()\fP تنظیم می‌کنند یا فلگ‌های داخلی را مقداردهی می‌کنند، مقدار آخرین گزینه اعمال‌شده مؤثر خواهد بود\&. .PP وجود یا معنای بسیاری از گزینه‌ها وابسته به سیستم است\&. معمولاً \fBSocat\fP تلاشی برای شبیه‌سازی قابلیت‌های غایب libc یا هسته انجام نمی‌دهد، بلکه صرفاً یک رابط برای سیستم زیربنایی فراهم می‌کند\&. بنابراین، اگر یک سیستم‌عامل فاقد قابلیتی باشد، گزینه مربوطه به سادگی روی این پلتفرم در دسترس نخواهد بود\&. .PP پاراگراف‌های زیر فقط گزینه‌های آدرس متداول‌تر را معرفی می‌کنند\&. برای یک مرجع جامع‌تر و یافتن اطلاعات درباره نام‌های متعارف گزینه‌ها، نام‌های مستعار، فازهای گزینه‌ها، و پلتفرم‌ها به فایل \fBxio\&.help\fP مراجعه کنید\&. .br .br .PP .br .PP \fI\fBگروه گزینه FD\fP\fP .PP این گروه گزینه شامل گزینه‌هایی است که بر روی توصیف‌کننده فایل (file descriptor) به سبک یونیکس (UN*X) اعمال می‌شوند، صرف‌نظر از اینکه چگونه ایجاد شده باشد\&. از آنجا که تمام انواع آدرس‌های فعلی در \fBsocat\fP مبتنی بر توصیف‌کننده فایل هستند، این گزینه‌ها را می‌توان روی هر آدرسی اعمال کرد\&. .br نکته: برخی از این گزینه‌ها عضو گروه گزینه دیگری نیز هستند که سازوکار دیگری به جز توصیف‌کننده فایل فراهم می‌کند\&. برای این گزینه‌ها، بسته به نوع آدرس واقعی و گروه‌های گزینه آن مشخص می‌شود که کدام سازوکار استفاده خواهد شد\&. سازوکار دوم (غیر مبتنی بر توصیف‌کننده فایل) اولویت دارد\&. .IP "\fB\f(CWcloexec[=]\fP\fP" فلگ \f(CWFD_CLOEXEC\fP را با فراخوانی سیستمی \f(CWfcntl()\fP به مقدار تنظیم می‌کند\&. در صورت تنظیم، توصیف‌کننده فایل در فراخوانی‌های خانواده توابع \f(CWexec()\fP بسته می‌شود\&. \fBSocat\fP به‌طور داخلی این فلگ را برای توصیف‌کننده‌های فایلی که کنترل می‌کند مدیریت می‌کند، بنابراین در بیشتر موارد نیازی به اعمال این گزینه نخواهد بود\&. .IP "\fB\f(CWsetlk[=]\fP\fP" تلاش می‌کند تا با استفاده از فراخوانی سیستمی \f(CWfcntl(fd, F_SETLK, \&.\&.\&.)\fP یک قفل نوشتن اختیاری (discretionary) بر روی کل فایل تنظیم کند\&. اگر فایل از قبل قفل شده باشد، این فراخوانی منجر به خطا می‌شود\&. در لینوکس، زمانی که مجوزهای گروهی فایل برابر با \(dq\&S\(dq\& باشد (g\-x,g+s)، و سیستم فایل به‌صورت محلی با گزینه \(dq\&mand\(dq\& مانت شده باشد، قفل اجباری (mandatory) خواهد بود، یعنی از باز کردن فایل توسط سایر فرایندها جلوگیری می‌کند\&. .IP "\fB\f(CWsetlkw[=]\fP\fP" تلاش می‌کند تا با استفاده از فراخوانی سیستمی \f(CWfcntl(fd, F_SETLKW, \&.\&.\&.)\fP یک قفل نوشتن اختیاریِ منتظرشونده بر روی کل فایل تنظیم کند\&. اگر فایل از قبل قفل شده باشد، این فراخوانی مسدود می‌شود\&. برای اطلاعات درباره اجباری کردن این قفل، گزینه setlk را ببینید\&. .IP "\fB\f(CWsetlk\-rd[=]\fP\fP" تلاش می‌کند تا با استفاده از فراخوانی سیستمی \f(CWfcntl(fd, F_SETLK, \&.\&.\&.)\fP یک قفل خواندن اختیاری بر روی کل فایل تنظیم کند\&. اگر فایل از قبل دارای قفل نوشتن باشد، این فراخوانی منجر به خطا می‌شود\&. برای اطلاعات درباره اجباری کردن این قفل، گزینه setlk را ببینید\&. .IP "\fB\f(CWsetlkw\-rd[=]\fP\fP" تلاش می‌کند تا با استفاده از فراخوانی سیستمی \f(CWfcntl(fd, F_SETLKW, \&.\&.\&.)\fP یک قفل خواندن اختیاریِ منتظرشونده بر روی کل فایل تنظیم کند\&. اگر فایل از قبل دارای قفل نوشتن باشد، این فراخوانی مسدود می‌شود\&. برای اطلاعات درباره اجباری کردن این قفل، گزینه setlk را ببینید\&. .IP "\fB\f(CWflock\-ex[=]\fP\fP" تلاش می‌کند تا با استفاده از فراخوانی سیستمی \f(CWflock(fd, LOCK_EX)\fP یک قفل مشورتی (advisory) انحصاری مسدودکننده بر روی فایل تنظیم کند\&. اگر فایل توسط فرایند دیگری قفل شده باشد، \fBSocat\fP در این فراخوانی معلق می‌ماند\&. .IP "\fB\f(CWflock\-ex\-nb[=]\fP\fP" تلاش می‌کند تا با استفاده از فراخوانی سیستمی \f(CWflock(fd, LOCK_EX|LOCK_NB)\fP یک قفل مشورتی انحصاری غیرمسدودکننده بر روی فایل تنظیم کند\&. اگر فایل از قبل قفل شده باشد، این گزینه منجر به خطا می‌شود\&. .IP "\fB\f(CWflock\-sh[=]\fP\fP" تلاش می‌کند تا با استفاده از فراخوانی سیستمی \f(CWflock(fd, LOCK_SH)\fP یک قفل مشورتی اشتراکی مسدودکننده بر روی فایل تنظیم کند\&. اگر فایل توسط فرایند دیگری قفل شده باشد، \fBSocat\fP در این فراخوانی معلق می‌ماند\&. .IP "\fB\f(CWflock\-sh\-nb[=]\fP\fP" تلاش می‌کند تا با استفاده از فراخوانی سیستمی \f(CWflock(fd, LOCK_SH|LOCK_NB)\fP یک قفل مشورتی اشتراکی غیرمسدودکننده بر روی فایل تنظیم کند\&. اگر فایل از قبل قفل شده باشد، این گزینه منجر به خطا می‌شود\&. .IP "\fB\f(CWlock[=]\fP\fP" یک قفل مسدودکننده بر روی فایل تنظیم می‌کند\&. بسته به در دسترس بودن در پلتفرم مربوطه، از سازوکار setlk یا flock استفاده می‌کند\&. در صورتی که هر دو در دسترس باشند، نوع POSIX یعنی setlkw استفاده می‌شود\&. .IP "\fB\f(CWuser=\fP\fP" کاربر (مالک) جریان را تعیین می‌کند\&. اگر آدرس عضو گروه گزینه NAMED باشد، \fBsocat\fP از فراخوانی سیستمی \f(CWchown()\fP پس از باز کردن فایل یا بایند کردن به سوکت دامین یونیکس استفاده می‌کند (شرایط رقابتی!)\&. در صورت عدم وجود ورودی سیستم فایل، \fBsocat\fP کاربر جریان را با استفاده از فراخوانی سیستمی \f(CWfchown()\fP تنظیم می‌کند\&. این فراخوانی‌ها ممکن است به دسترسی کاربر ارشد (root) نیاز داشته باشند\&. .IP "\fB\f(CWuser\-late=\fP\fP" مالک توصیف‌کننده فایل را پس از باز کردن یا اتصال کانال، با فراخوانی سیستمی \f(CWfchown()\fP به تنظیم می‌کند\&. این گزینه فقط روی ورودی‌های سیستم فایل مفید است\&. .IP "\fB\f(CWgroup=\fP\fP" گروه جریان را تعیین می‌کند\&. اگر آدرس عضو گروه گزینه NAMED باشد، \fBsocat\fP از فراخوانی سیستمی \f(CWchown()\fP پس از باز کردن فایل یا بایند کردن به سوکت دامین یونیکس استفاده می‌کند (شرایط رقابتی!)\&. در صورت عدم وجود ورودی سیستم فایل، \fBsocat\fP گروه جریان را با فراخوانی سیستمی \f(CWfchown()\fP تنظیم می‌کند\&. این فراخوانی‌ها ممکن است به عضویت در گروه یا دسترسی ریشه (root) نیاز داشته باشند\&. .IP "\fB\f(CWgroup\-late=\fP\fP" گروه توصیف‌کننده فایل را پس از باز کردن یا اتصال کانال، با فراخوانی سیستمی \f(CWfchown()\fP به تنظیم می‌کند\&. این گزینه فقط روی ورودی‌های سیستم فایل مفید است\&. .IP "\fB\f(CWmode=\fP\fP" حالت [mode_t] (مجوزهای دسترسی) جریان را تعیین می‌کند\&. اگر آدرس عضو گروه گزینه NAMED باشد و از فراخوانی \f(CWopen()\fP یا \f(CWcreat()\fP استفاده کند، حالت همراه با این فراخوانی‌ها اعمال می‌شود\&. اگر آدرس عضو گروه گزینه NAMED باشد بدون اینکه از این فراخوانی‌های سیستمی استفاده کند، \fBsocat\fP پس از باز کردن ورودی سیستم فایل یا بایند کردن به سوکت دامین یونیکس از فراخوانی سیستمی \f(CWchmod()\fP استفاده می‌کند (شرایط رقابتی!)\&. در غیر این صورت، \fBsocat\fP حالت جریان را با استفاده از \f(CWfchmod()\fP تنظیم می‌کند که البته ممکن است هیچ تأثیری نداشته باشد\&. .br این فراخوانی‌ها ممکن است به مالکیت یا دسترسی ریشه (root) نیاز داشته باشند\&. .br نکته: این گزینه فقط می‌تواند مجوزهای ناشی از umask فرایند را محدودتر کند\&. برای گشودن مجوزها، گزینه umask را ببینید\&. .IP "\fB\f(CWperm\-late=\fP\fP" مجوزهای توصیف‌کننده فایل را پس از باز کردن یا اتصال کانال، با استفاده از فراخوانی سیستمی \f(CWfchmod()\fP به مقدار [mode_t] تنظیم می‌کند\&. این گزینه فقط روی ورودی‌های سیستم فایل مفید است\&. .IP "\fB\f(CWappend[=]\fP\fP" همیشه داده‌ها را در انتهای واقعی فایل می‌نویسد\&. اگر آدرس عضو گروه گزینه OPEN باشد، \fBsocat\fP از فلگ \f(CWO_APPEND\fP همراه با فراخوانی سیستمی \f(CWopen()\fP استفاده می‌کند (مثال)\&. در غیر این صورت، \fBsocat\fP فراخوانی \f(CWfcntl(fd, F_SETFL, O_APPEND)\fP را اعمال می‌کند\&. .IP "\fB\f(CWnonblock[=]\fP\fP" تلاش می‌کند تا فایل را در حالت غیرمسدودکننده باز کرده یا استفاده کند\&. تنها اثرات آن این است که فراخوانی \f(CWconnect()\fP در آدرس‌های TCP مسدود نمی‌شود، و باز کردن یک پایپ نام‌گذاری‌شده برای خواندن مسدود نخواهد شد\&. اگر آدرس عضو گروه گزینه OPEN باشد، \fBsocat\fP از فلگ \f(CWO_NONBLOCK\fP همراه با فراخوانی سیستمی \f(CWopen()\fP استفاده می‌کند\&. در غیر این صورت، \fBsocat\fP فراخوانی \f(CWfcntl(fd, F_SETFL, O_NONBLOCK)\fP را اعمال می‌کند\&. .IP "\fB\f(CWbinary[=]\fP\fP" فایل را در حالت باینری باز می‌کند تا از تبدیل ضمنی پایان‌دهنده‌های خط جلوگیری شود (Cygwin)\&. .IP "\fB\f(CWtext[=]\fP\fP" فایل را در حالت متنی باز می‌کند تا تبدیل ضمنی پایان‌دهنده‌های خط تحمیل شود (Cygwin)\&. .IP "\fB\f(CWnoinherit[=]\fP\fP" این فایل را در فرایند ایجادشده باز نگه نمی‌دارد (Cygwin)\&. .IP "\fB\f(CWcool\-write[=]\fP\fP" هنگامی که عملیات نوشتن با خطای EPIPE یا ECONNRESET با شکست مواجه می‌شود، آسان می‌گیرد و پیام را با سطح \fInotice\fP به جای \fIerror\fP در لاگ ثبت می‌کند\&. این کار از پر شدن فایل گزارش با پیام‌های خطای بی‌فایده جلوگیری می‌کند، در شرایطی که \fBsocat\fP به عنوان سرور یا پروکسی با حجم بالای تبادل استفاده می‌شود و کلاینت‌ها اغلب اتصال را قطع می‌کنند\&. این گزینه را تنها همراه با گزینه fork استفاده کنید زیرا در غیر این صورت ممکن است باعث شود \fBsocat\fP حتی هنگام خرابی با کد 0 خارج شود\&. .br این گزینه منسوخ شده است، توصیه می‌شود به جای آن از گزینه children\-shutup استفاده کنید\&. .IP "\fB\f(CWend\-close[=]\fP\fP" روش پایان دادن به اتصال (که وابسته به آدرس است) را به صرفاً بستن توصیف‌کننده‌های فایل تغییر می‌دهد\&. این گزینه زمانی مفید است که قرار باشد اتصال توسط فرایندهای دیگر مجدداً استفاده شده یا با آن‌ها به اشتراک گذاشته شود (مثال)\&. .br به‌طور معمول، اتصالات سوکت با \f(CWshutdown(2)\fP خاتمه می‌یابند که حتی اگر سوکت بین چندین فرایند به اشتراک گذاشته شده باشد، آن را می‌بندد\&. \f(CWclose(2)\fP سوکت را از فرایند جدا می‌کند اما تا زمانی که پیوندهایی از سایر فرایندها وجود داشته باشد، آن را فعال نگه می‌دارد\&. .br به همین ترتیب، هنگامی که یک آدرس از نوع EXEC یا SYSTEM خاتمه می‌یابد، socat معمولاً به‌طور صریح زیرفرایند را متوقف می‌کند\&. با این گزینه، تنها توصیف‌کننده‌های فایل را می‌بندد\&. .IP "\fB\f(CWshut\-none[=]\fP\fP" روش قطع کردن (shutdown) بخش نوشتاری یک اتصال (که وابسته به آدرس است) را طوری تغییر می‌دهد که هیچ کاری انجام ندهد\&. .IP "\fB\f(CWshut\-down[=]\fP\fP" روش قطع کردن بخش نوشتاری یک اتصال (که وابسته به آدرس است) را به shutdown(fd, SHUT_WR) تغییر می‌دهد\&. فقط با سوکت‌ها مفید است\&. .IP "\fB\f(CWshut\-close[=]\fP\fP" روش قطع کردن بخش نوشتاری یک اتصال (که وابسته به آدرس است) را به close(fd) تغییر می‌دهد\&. .IP "\fB\f(CWshut\-null[=]\fP\fP" هنگامی که یک آدرس EOF (پایان فایل) را نشان می‌دهد، \fBsocat\fP یک بسته با اندازه صفر را به کانال نوشتن آدرس دیگر ارسال می‌کند تا وضعیت EOF را انتقال دهد\&. این گزینه با UDP و سایر پروتکل‌های دیتاگرام مفید است\&. در برابر netcat و socat با گزینه null\-eof آزمایش شده است\&. .IP "\fB\f(CWnull\-eof[=]\fP\fP" به‌طور معمول \fBsocat\fP بسته‌های خالی (با داده بار صفر) که به سوکت‌های دیتاگرام می‌رسند را نادیده می‌گیرد تا در برابر اسکن‌های پورت دوام بیاورد\&. با این گزینه، \fBsocat\fP بسته‌های دیتاگرام خالی را به عنوان نشانگر EOF تفسیر می‌کند (گزینه shut\-null را ببینید)\&. .IP "\fB\f(CWioctl\-void=\fP\fP" تابع \f(CWioctl()\fP را با مقدار request به عنوان آرگومان دوم و NULL به عنوان آرگومان سوم فراخوانی می‌کند\&. این گزینه امکان بهره‌برداری از ioctlهایی را فراهم می‌کند که به‌طور صریح در socat پیاده‌سازی نشده‌اند\&. .IP "\fB\f(CWioctl\-int=:\fP\fP" تابع \f(CWioctl()\fP را با مقدار request به عنوان آرگومان دوم و مقدار عدد صحیح (integer) به عنوان آرگومان سوم فراخوانی می‌کند\&. .IP "\fB\f(CWioctl\-intp=:\fP\fP" تابع \f(CWioctl()\fP را با مقدار request به عنوان آرگومان دوم و اشاره‌گری به مقدار عدد صحیح به عنوان آرگومان سوم فراخوانی می‌کند\&. .IP "\fB\f(CWioctl\-bin=:\fP\fP" تابع \f(CWioctl()\fP را با مقدار request به عنوان آرگومان دوم و اشاره‌گری به مقدار داده ارائه‌شده به عنوان آرگومان سوم فراخوانی می‌کند\&. این داده باید در قالب مشخص شود\&. .IP "\fB\f(CWioctl\-string=:\fP\fP" تابع \f(CWioctl()\fP را با مقدار request به عنوان آرگومان دوم و اشاره‌گری به رشته داده‌شده به عنوان آرگومان سوم فراخوانی می‌کند\&. قالب \&. .PP .br .PP \fI\fBگروه گزینه NAMED\fP\fP .PP این گزینه‌ها روی ورودی‌های سیستم فایل کار می‌کنند\&. .br لطفاً توجه داشته باشید که در آدرس‌های کلاینت دامین یونیکس، این به معنای ورودی bind است، نه ورودی مقصد/همتا\&. .br همچنین گزینه‌های user، group و mode را ببینید\&. .PP .IP "\fB\f(CWuser\-early=\fP\fP" کاربر (مالک) ورودی سیستم فایل را پیش از دسترسی به آن، با استفاده از فراخوانی سیستمی \f(CWchown()\fP تغییر می‌دهد\&. این فراخوانی ممکن است به دسترسی ریشه (root) نیاز داشته باشد\&. .IP "\fB\f(CWgroup\-early=\fP\fP" گروه ورودی سیستم فایل را پیش از دسترسی به آن، با استفاده از فراخوانی سیستمی \f(CWchown()\fP تغییر می‌دهد\&. این فراخوانی ممکن است به عضویت در گروه یا دسترسی ریشه (root) نیاز داشته باشد\&. .IP "\fB\f(CWperm\-early=\fP\fP" حالت [mode_t] ورودی سیستم فایل را پیش از دسترسی به آن، با استفاده از فراخوانی سیستمی \f(CWchmod()\fP تغییر می‌دهد\&. این فراخوانی ممکن است به مالکیت یا دسترسی ریشه (root) نیاز داشته باشد\&. .IP "\fB\f(CWunlink\-early[=]\fP\fP" فایل را پیش از باز کردن آن و حتی پیش از اعمال user\-early و غیره حذف (unlink) می‌کند\&. .IP "\fB\f(CWunlink[=]\fP\fP" فایل را پیش از دسترسی به آن، اما پس از user\-early و غیره حذف (unlink) می‌کند\&. .IP "\fB\f(CWunlink\-late[=]\fP\fP" فایل را پس از باز کردن آن حذف (unlink) می‌کند تا پس از یک شرایط رقابتی کوتاه، برای سایر فرایندها غیرقابل دسترسی شود\&. .IP "\fB\f(CWunlink\-close[=]\fP\fP" حذف ورودی سیستم فایل مربوط به آدرس‌ها را هنگام بستن آدرس کنترل می‌کند\&. برای پایپ‌های نام‌گذاری‌شده، سوکت‌های دامین یونیکس، و پیوندهای نمادین آدرس‌های pty، پیش‌فرض حذف کردن (1) است؛ برای فایل‌های ایجادشده، فایل‌های بازشده، و فایل‌های بازشده عمومی، پیش‌فرض نگه‌داشتن (0) است\&. تنظیم این گزینه روی 1 ورودی را حذف می‌کند و 0 آن را نگه می‌دارد\&. نبود مقدار به معنای 1 است\&. .PP .br .PP \fI\fBگروه گزینه OPEN\fP\fP .PP گزینه‌های گروه OPEN امکان تنظیم فلگ‌ها را با فراخوانی سیستمی \f(CWopen()\fP فراهم می‌کنند\&. به عنوان مثال، گزینه `creat\(cq\& فلگ \f(CWO_CREAT\fP را تنظیم می‌کند\&. هنگامی که آدرس استفاده‌شده از \f(CWopen()\fP استفاده نمی‌کند (مانند STDIO)، فراخوانی \f(CWfcntl(\&.\&.\&., F_SETFL, \&.\&.\&.)\fP به جای آن استفاده می‌شود\&. .br همچنین گزینه‌های append و nonblock را ببینید\&. .IP "\fB\f(CWcreat[=]\fP\fP" در صورتی که فایل وجود نداشته باشد، آن را ایجاد می‌کند (مثال)\&. .IP "\fB\f(CWdsync[=]\fP\fP" فراخوانی‌های \f(CWwrite()\fP را تا زمانی که فراداده (metainfo) به‌طور فیزیکی روی رسانه نوشته شود مسدود می‌کند\&. .IP "\fB\f(CWexcl[=]\fP\fP" همراه با گزینه creat، اگر فایل وجود داشته باشد منجر به خطا می‌شود\&. .IP "\fB\f(CWlargefile[=]\fP\fP" در سیستم‌های ۳۲ بیتی، امکان استفاده از فایل بزرگتر از 2^31 بایت را فراهم می‌کند\&. .IP "\fB\f(CWnoatime[=]\fP\fP" گزینه O_NOATIME را تنظیم می‌کند تا خواندن‌ها مهر زمانی دسترسی را تغییر ندهند\&. .IP "\fB\f(CWnoctty[=]\fP\fP" این فایل را به ترمینال کنترلی تبدیل نمی‌کند\&. .IP "\fB\f(CWnofollow[=]\fP\fP" پیوندهای نمادین را دنبال نمی‌کند\&. .IP "\fB\f(CWnshare[=]\fP\fP" اجازه اشتراک‌گذاری این فایل با سایر فرایندها را نمی‌دهد\&. .IP "\fB\f(CWrshare[=]\fP\fP" به سایر فرایندها اجازه باز کردن این فایل برای نوشتن را نمی‌دهد\&. .IP "\fB\f(CWrsync[=]\fP\fP" فراخوانی \f(CWwrite()\fP را تا زمانی که فراداده به‌طور فیزیکی روی رسانه نوشته شود مسدود می‌کند\&. .IP "\fB\f(CWsync[=]\fP\fP" فراخوانی \f(CWwrite()\fP را تا زمانی که داده‌ها به‌طور فیزیکی روی رسانه نوشته شوند مسدود می‌کند\&. .IP "\fB\f(CWrdonly[=]\fP\fP" فایل را تنها برای خواندن باز می‌کند\&. .IP "\fB\f(CWwronly[=]\fP\fP" فایل را تنها برای نوشتن باز می‌کند\&. .IP "\fB\f(CWtrunc[=]\fP\fP" هنگام باز کردن فایل، اندازه آن را به 0 کاهش می‌دهد (کوتاه می‌کند)\&. .PP .br .PP \fI\fBگروه گزینه REG و BLK\fP\fP .PP این گزینه‌ها معمولاً روی یک توصیف‌کننده فایل یونیکس اعمال می‌شوند، اما مفهوم آن‌ها فقط روی فایلی که از دسترسی تصادفی پشتیبانی کند معنادار است\&. .IP "\fB\f(CWseek=\fP\fP" فراخوانی سیستمی \f(CWlseek(fd, , SEEK_SET)\fP (یا \f(CWlseek64\fP ) را اعمال می‌کند، بنابراین اشاره‌گر فایل را به‌طور مطلق در موقعیت [off_t یا off64_t] قرار می‌دهد\&. لطفاً توجه داشته باشید که در صورت نبود مقدار، پیش‌فرض 1 است نه 0\&. .IP "\fB\f(CWseek\-cur=\fP\fP" فراخوانی سیستمی \f(CWlseek(fd, , SEEK_CUR)\fP (یا \f(CWlseek64\fP ) را اعمال می‌کند، بنابراین اشاره‌گر فایل را به اندازه [off_t یا off64_t] بایت نسبت به موقعیت فعلی‌اش (که معمولاً 0 است) جابه‌جا می‌کند\&. لطفاً توجه داشته باشید که در صورت نبود مقدار، پیش‌فرض 1 است نه 0\&. .IP "\fB\f(CWseek\-end=\fP\fP" فراخوانی سیستمی \f(CWlseek(fd, , SEEK_END)\fP (یا \f(CWlseek64\fP ) را اعمال می‌کند، بنابراین اشاره‌گر فایل را به اندازه [off_t یا off64_t] بایت نسبت به انتهای فعلی فایل جابه‌جا می‌کند\&. لطفاً توجه داشته باشید که در صورت نبود مقدار، پیش‌فرض 1 است نه 0\&. .IP "\fB\f(CWftruncate=\fP\fP" فراخوانی سیستمی \f(CWftruncate(fd, )\fP (یا در صورت در دسترس بودن \f(CWftruncate64\fP ) را اعمال می‌کند، بنابراین فایل را در موقعیت [off_t یا off64_t] کوتاه می‌کند\&. لطفاً توجه داشته باشید که در صورت نبود مقدار، پیش‌فرض 1 است نه 0\&. .IP .IP "\fB\f(CWsecrm[=]\fP\fP" .IP "\fB\f(CWunrm[=]\fP\fP" .IP "\fB\f(CWcompr[=]\fP\fP" .IP "\fB\f(CWfs\-sync[=]\fP\fP" .IP "\fB\f(CWimmutable[=]\fP\fP" .IP "\fB\f(CWfs\-append[=]\fP\fP" .IP "\fB\f(CWnodump[=]\fP\fP" .IP "\fB\f(CWfs\-noatime[=]\fP\fP" .IP "\fB\f(CWjournal\-data[=]\fP\fP" .IP "\fB\f(CWnotail[=]\fP\fP" .IP "\fB\f(CWdirsync[=]\fP\fP" این گزینه‌ها ویژگی‌های غیر استاندارد فایل را در سیستم‌عامل‌ها و سیستم‌های فایلی که از این قابلیت‌ها پشتیبانی می‌کنند (مانند لینوکس با ext2fs و جانشینان آن، xfs، یا reiserfs) تغییر می‌دهند\&. برای اطلاعات بیشتر در مورد این گزینه‌ها، man 1 chattr را ببینید\&. لطفاً توجه داشته باشید که ممکن است بین ایجاد فایل و اعمال این گزینه‌ها شرایط رقابتی رخ دهد\&. .PP .br .PP \fI\fBگزینه‌های PIPE\fP\fP .PP این گزینه‌ها را می‌توان روی پایپ‌ها (fifos) اعمال کرد\&. .PP .IP "\fB\f(CWf\-setpipe\-sz=\fP\fP" .IP "\fB\f(CWsetpipe=\fP\fP" تعداد بایت‌هایی که یک پایپ می‌تواند بافر کند را تعیین می‌کند\&. اگر بایت‌های بیشتری نوشته شود ممکن است فرایند نویسنده مسدود شود\&. هنگامی که بایت‌های بیشتری در یک فراخوانی واحد \f(CWwrite()\fP نوشته شود، فرایند نویسنده مسدود شده و ممکن است هرگز بازیابی نشود\&. .PP .br .PP \fI\fBگزینه‌های عمومی آدرس\fP\fP .PP این گزینه‌ها را می‌توان برای تمامی انواع آدرس اعمال کرد\&. آن‌ها برخی از ویژگی‌های فرایند را تغییر می‌دهند که پس از باز کردن آدرس به حالت اولیه بازگردانده می‌شوند\&. .PP .IP "\fB\f(CWchdir=\fP\fP" .IP "\fB\f(CWcd=\fP\fP" دایرکتوری کاری را تغییر می‌دهد\&. پس از باز کردن آدرس، فرایند اصلی به دایرکتوری کاری اولیه بازمی‌گردد\&. زیرفرایندها این تنظیم موقت را به ارث می‌برند\&. .IP "\fB\f(CWumask=\fP\fP" مقدار umask فرایند را پیش از باز کردن آدرس به [mode_t] تنظیم می‌کند\&. زمانی مفید است که ورودی‌های سیستم فایل ایجاد شوند یا یک شل یا برنامه اجرا گردد\&. معمولاً مقدار به‌صورت عدد اکتال با یک \(cq\&0\(cq\& آغازین مشخص می‌شود\&. .br مقدار \f(CWumask\fP فرایند توسط فرایندهای فرزند به ارث برده می‌شود\&. .br نکته: umask مقداری معکوس است: ایجاد یک فایل با umask=0026 منجر به مجوزهای دسترسی 0640 می‌شود\&. .PP .br .PP \fI\fBگروه گزینه PROCESS\fP\fP .PP گزینه‌های این گروه به جای اینکه صرفاً روی یک کانال داده تأثیر بگذارند، ویژگی‌های فرایند را تغییر می‌دهند\&. برای آدرس‌های EXEC و SYSTEM و برای آدرس‌های نوع LISTEN و CONNECT همراه با گزینه fork، این گزینه‌ها به جای فرایند اصلی \fBsocat\fP روی فرایندهای فرزند اعمال می‌شوند\&. .IP "\fB\f(CWchroot=\fP\fP" پس از پردازش آدرس، یک عملیات \f(CWchroot()\fP به دایرکتوری انجام می‌دهد (مثال)\&. این فراخوانی ممکن است به دسترسی ریشه (root) نیاز داشته باشد\&. .IP "\fB\f(CWchroot\-early=\fP\fP" پیش از باز کردن آدرس، یک عملیات \f(CWchroot()\fP به دایرکتوری انجام می‌دهد\&. این فراخوانی ممکن است به دسترسی ریشه (root) نیاز داشته باشد\&. .IP "\fB\f(CWsetgid=\fP\fP" پس از پردازش آدرس، گروه اصلی فرایند را تغییر می‌دهد\&. این فراخوانی ممکن است به دسترسی ریشه (root) نیاز داشته باشد\&. لطفاً توجه داشته باشید که این گزینه سایر امتیازات مربوط به گروه را لغو نمی‌کند\&. .IP "\fB\f(CWsetgid\-early=\fP\fP" مانند setgid است اما پیش از باز کردن آدرس انجام می‌شود\&. .IP "\fB\f(CWsetuid=\fP\fP" پس از پردازش آدرس، کاربر (مالک) فرایند را تغییر می‌دهد\&. این فراخوانی ممکن است به دسترسی ریشه (root) نیاز داشته باشد\&. لطفاً توجه داشته باشید که این گزینه امتیازات مربوط به گروه را لغو نمی‌کند\&. بررسی کنید که آیا گزینه su برای نیازهای شما مناسب‌تر است یا خیر\&. .IP "\fB\f(CWsetuid\-early=\fP\fP" مانند setuid است اما پیش از باز کردن آدرس انجام می‌شود\&. .IP "\fB\f(CWsu=\fP\fP" پس از پردازش آدرس، کاربر (مالک) و گروه‌های فرایند را تغییر می‌دهد (مثال)\&. این فراخوانی ممکن است به دسترسی ریشه (root) نیاز داشته باشد\&. .IP "\fB\f(CWsu\-d=\fP\fP" نام کوتاه برای \f(CWsubstuser\-delayed\fP\&. پس از پردازش آدرس، کاربر (مالک) و گروه‌های فرایند را تغییر می‌دهد (مثال)\&. اطلاعات کاربر و گروه‌های او \fIپیش از\fP فراخوانی احتمالی \f(CWchroot()\fP دریافت می‌شوند\&. این فراخوانی ممکن است به دسترسی ریشه (root) نیاز داشته باشد\&. .IP "\fB\f(CWsetpgid=\fP\fP" فرایند را عضو گروه فرایندی مشخص‌شده می‌کند\&. اگر مقداری داده نشود، یا اگر مقدار 0 یا 1 باشد، فرایند رهبر یک گروه فرایندی جدید می‌شود\&. .IP "\fB\f(CWsetsid\fP\fP" فرایند را به رهبر یک نشست (session) جدید تبدیل می‌کند (مثال)\&. .IP "\fB\f(CWnetns=\fP\fP" پیش از باز کردن آدرس تلاش می‌کند به فضای نام شبکه نام‌برده سوئیچ کند\&. پس از باز کردن آدرس، به فضای نام قبلی بازمی‌گردد (مثال با فورواردر TCP، مثال با اتصال شبکه مجازی)\&. .br تنها در لینوکس؛ نیازمند دسترسی ریشه (root) است؛ از گزینه \f(CW\-\-experimental\fP استفاده کنید\&. .br .PP .br .PP \fI\fBگروه گزینه READLINE\fP\fP .PP به دلیل محدودیت‌های مجوزی، قابلیت readline در دبیان غیرفعال است (بخش BUGS را ببینید)\&. .br این گزینه‌ها برای نوع آدرس readline اعمال می‌شوند\&. .IP "\fB\f(CWhistory=\fP\fP" تاریخچه (history) را از/به می‌خواند و می‌نویسد (مثال)\&. .IP "\fB\f(CWnoprompt\fP\fP" از نسخه 1\&.4\&.0، socat به‌طور پیش‌فرض با به خاطر سپردن آخرین خط ناقص خروجی، سعی می‌کند اعلانی (prompt) تعیین کند که سپس به فراخوانی readline ارسال می‌شود\&. با این گزینه، socat هیچ اعلانی را به readline ارسال نمی‌کند، بنابراین ویرایش خط در ستون اول ترمینال آغاز می‌شود\&. .IP "\fB\f(CWnoecho=\fP\fP" یک الگوی باقاعده برای اعلان مشخص می‌کند که از نمایش خط ورودی بعدی بر روی صفحه و اضافه شدن آن به تاریخچه جلوگیری می‌کند\&. اعلان به عنوان متنی تعریف می‌شود که پس از آخرین نویسه خط جدید و پیش از تایپ یک نویسه ورودی، در آدرس readline چاپ شده است\&. این الگو یک عبارت باقاعده (regex) است، مانند \(dq\&^[Pp]assword:\&.*$\(dq\& یا \(dq\&([Uu]ser:|[Pp]assword:)\(dq\&\&. برای جزئیات regex(7) را ببینید\&. (مثال) .IP "\fB\f(CWprompt=\fP\fP" این رشته را به عنوان اعلان به تابع readline ارسال می‌کند\&. readline هنگام پیمایش در تاریخچه، این اعلان را چاپ می‌کند\&. اگر این رشته با اعلان ثابتی که توسط یک برنامه تعاملی روی آدرس دیگر socat صادر می‌شود مطابقت داشته باشد، ظاهر و تجربه یکدستی حاصل می‌شود\&. .PP .br .PP \fI\fBگروه گزینه APPLICATION\fP\fP .PP این گروه شامل گزینه‌هایی است که در سطح داده عمل می‌کنند\&. توجه داشته باشید که این گزینه‌ها تنها برای داده‌های \(dq\&خام\(dq\& منتقل‌شده توسط socat اعمال می‌شوند، نه برای داده‌های پروتکلی که توسط آدرس‌هایی مانند PROXY استفاده می‌شوند\&. .IP "\fB\f(CWcr\fP\fP" هنگام نوشتن/خواندن روی این کانال، نویسه پیش‌فرض پایان خط NL (\(cq\&\en\(cq\&, 0x0a) را از/به CR (\(cq\&\er\(cq\&, 0x0d) تبدیل می‌کند\&. .IP "\fB\f(CWcrnl\fP\fP" هنگام نوشتن/خواندن روی این کانال، نویسه پیش‌فرض پایان خط NL (\(cq\&\en\(cq\&, 0x0a) را از/به CRNL (\(dq\&\er\en\(dq\&, 0x0d0a) تبدیل می‌کند (مثال)\&. نکته: socat به‌سادگی تمامی نویسه‌های CR را حذف می‌کند\&. .IP "\fB\f(CWignoreeof\fP\fP" هنگامی که پایان فایل (EOF) در این کانال رخ می‌دهد، \fBsocat\fP آن را نادیده گرفته و تلاش می‌کند داده‌های بیشتری بخواند (مانند \(dq\&tail \-f\(dq\&) (مثال)\&. .IP "\fB\f(CWreadbytes=\fP\fP" \fBsocat\fP فقط همین تعداد بایت را از این آدرس می‌خواند (آدرس تنها همین تعداد بایت را برای انتقال ارائه داده و پس از آن وانمود می‌کند که به EOF رسیده است)\&. باید بزرگتر از 0 باشد\&. .IP "\fB\f(CWlockfile=\fP\fP" اگر فایل قفل وجود داشته باشد، با خطا خارج می‌شود\&. اگر فایل قفل وجود نداشته باشد، آن را ایجاد کرده و ادامه می‌دهد، و هنگام خروج فایل قفل را حذف (unlink) می‌کند\&. .IP "\fB\f(CWwaitlock=\fP\fP" اگر فایل قفل وجود داشته باشد، منتظر ناپدید شدن آن می‌ماند\&. هنگامی که فایل قفل وجود نداشته باشد، آن را ایجاد کرده و ادامه می‌دهد، و هنگام خروج فایل قفل را حذف می‌کند\&. .IP "\fB\f(CWescape=\fP\fP" کد عددی نویسه‌ای را مشخص می‌کند که پایان فایل (EOF) را در جریان ورودی فعال می‌کند\&. این گزینه برای ترمینال در حالت خام مفید است (مثال)\&. .PP .br .PP \fI\fBگروه گزینه SOCKET\fP\fP .PP این گزینه‌ها برای تمامی انواع سوکت‌ها مانند IP یا دامین یونیکس در نظر گرفته شده‌اند\&. بیشتر آن‌ها با یک فراخوانی \f(CWsetsockopt()\fP اعمال می‌شوند\&. .IP "\fB\f(CWbind=\fP\fP" سوکت را با استفاده از فراخوانی سیستمی \f(CWbind()\fP به آدرس سوکت داده‌شده متصل (bind) می‌کند\&. قالب به دامنه سوکت بستگی دارد: در IP4 و IP6 قالب [hostname|hostaddress][:(service|port)] مجاز است (مثال)، در VSOCK قالب [cid][:(port)] مجاز است\&. .br همچنین ببینید: unix\-bind\-tempname .IP "\fB\f(CWconnect\-timeout=\fP\fP" تلاش برای برقراری اتصال را پس از [timeval] ثانیه با وضعیت خطا لغو می‌کند\&. .IP "\fB\f(CWso\-bindtodevice=\fP\fP" سوکت را به رابط شبکه داده‌شده متصل (bind) می‌کند\&. این گزینه ممکن است به دسترسی ریشه (root) نیاز داشته باشد\&. .IP "\fB\f(CWbroadcast\fP\fP" برای سوکت‌های دیتاگرام، اجازه ارسال به آدرس‌های برودکست و دریافت بسته‌های آدرس‌دهی‌شده به آدرس‌های برودکست را می‌دهد\&. .IP "\fB\f(CWdebug\fP\fP" اشکال‌زدایی سوکت را فعال می‌کند\&. .IP "\fB\f(CWdontroute\fP\fP" فقط با همتاهای مستقیماً متصل‌شده ارتباط برقرار می‌کند و از مسیریاب‌ها استفاده نمی‌کند\&. .IP "\fB\f(CWkeepalive\fP\fP" ارسال پیام‌های زنده نگه‌داشتن (keepalive) را روی سوکت فعال می‌کند\&. .IP "\fB\f(CWlinger=\fP\fP" فراخوانی‌های \f(CWshutdown()\fP یا \f(CWclose()\fP را تا پایان انتقال داده‌ها یا به پایان رسیدن مهلت زمانی داده‌شده [int] مسدود می‌کند\&. .IP "\fB\f(CWoobinline\fP\fP" داده‌های خارج از باند (out\-of\-band) را در جریان داده ورودی قرار می‌دهد\&. .IP "\fB\f(CWpriority=\fP\fP" اولویت تعریف‌شده توسط پروتکل [] را برای بسته‌های خروجی تنظیم می‌کند\&. .IP "\fB\f(CWrcvbuf=\fP\fP" اندازه بافر دریافت را پس از فراخوانی \f(CWsocket()\fP به [int] بایت تنظیم می‌کند\&. در سوکت‌های TCP، این مقدار متناظر با حداکثر اندازه پنجره سوکت است\&. .IP "\fB\f(CWrcvbuf\-late=\fP\fP" زمانی که سوکت از قبل متصل است، اندازه بافر دریافت را به [int] بایت تنظیم می‌کند\&. در سوکت‌های TCP، این مقدار متناظر با حداکثر اندازه پنجره سوکت است\&. .IP "\fB\f(CWso\-rcvtimeo=