.TH "socat" "1" "" "" ""
.PP
.SH "نام (NAME)"
socat \- رله چندمنظوره (SOcket CAT)
.PP
.SH "خلاصه دستور (SYNOPSIS)"
\f(CWsocat [options]
\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 برنامهای مبتنی بر خط فرمان است که دو جریان بایت (byte stream) دوطرفه برقرار کرده و دادهها را میان آنها منتقل میکند\&. از آنجا که این جریانها را میتوان از مجموعه گستردهای از انواع مختلف مبدأها و مقصدهای داده (رجوع به انواع نشانیها) ایجاد کرد، و به دلیل اینکه میتوان گزینههای نشانی فراوانی را بر روی این جریانها اعمال نمود، socat برای اهداف بسیار گوناگونی قابل استفاده است\&.
.PP
ابزار \fBFilan\fP برنامهای است که اطلاعات مربوط به توصیفگرهای فایل فعال خود را در خروجی استاندارد (stdout) چاپ میکند\&. این ابزار برای اشکالزدایی \fBsocat\fP نوشته شده است، اما برای مقاصد دیگر نیز ممکن است مفید باشد\&. برای یافتن اطلاعات بیشتر از گزینه \-h استفاده کنید\&.
.PP
ابزار \fBProcan\fP برنامهای است که اطلاعات مربوط به پارامترهای پردازش را در خروجی استاندارد چاپ میکند\&. این ابزار به منظور درک بهتر برخی از ویژگیهای پردازشهای UNIX و اشکالزدایی \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) کند تا به آن فرصتی برای خاتمه تمیز (graceful) داده شود\&. برای مدتی مشخص، \fBsocat\fP به انتقال داده در جهت دیگر ادامه میدهد، اما پس از آن تمام کانالهای باقیمانده را بسته و خاتمه مییابد\&.
.PP
.SH "گزینهها (OPTIONS)"
.PP
برنامه \fBSocat\fP گزینههایی در خط فرمان فراهم میکند که رفتار برنامه را تغییر میدهند\&. این گزینهها ارتباطی با گزینههای نشانی (address options) ندارند که به عنوان بخشی از مشخصات نشانی به کار میروند\&.
.PP
.IP "\fB\f(CW\-V\fP\fP"
اطلاعات نسخه و قابلیتهای دردسترس را در stdout چاپ کرده و خارج میشود\&.
.IP "\fB\f(CW\-h | \-?\fP\fP"
متن راهنمایی را شامل توضیح گزینههای خط فرمان و انواع نشانیهای دردسترس در stdout چاپ کرده و خارج میشود\&.
.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\fP\f(CW \fP"
پیامها را بهجای stderr در [نام فایل] مینویسد\&. برخی کتابخانههای شخص ثالث، بهویژه libwrap، ممکن است از این گزینه تبعیت نکنند\&.
.IP "\fB\f(CW\-ls\fP\fP"
پیامها را در stderr مینویسد (این حالت پیشفرض است)\&. برخی کتابخانههای شخص ثالث ممکن است از این گزینه تبعیت نکنند، بهویژه به نظر میرسد libwrap تنها در syslog ثبت میکند\&.
.IP "\fB\f(CW\-lp\fP\fP\f(CW\fP"
نام برنامهای را که در پیامهای خطا چاپ میشود و برای ساخت نامهای متغیرهای محیطی به کار میرود، تغییر میدهد\&.
.IP "\fB\f(CW\-lu\fP\fP"
دقت برچسب زمان (timestamp) پیامهای خطا را به میکروثانیه افزایش میدهد\&. هنگام ارسال به syslog کار نمیکند\&.
.IP "\fB\f(CW\-lm[]\fP\fP"
حالت گزارشگیری ترکیبی\&. هنگام راهاندازی پیامها در stderr چاپ میشوند؛ هنگامی که \fBsocat\fP حلقه فاز انتقال یا حالت دیمن را آغاز میکند (یعنی پس از باز کردن همه جریانها و پیش از آغاز انتقال داده، یا با سوکتهای شنونده به همراه گزینه fork، پیش از نخستین فراخوانی accept)، گزارشگیری را به syslog تغییر میدهد\&. با مشخص کردن اختیاری، نوع syslog را میتوان تعیین کرد که بهطور پیشفرض \(dq\&daemon\(dq است\&.
.IP "\fB\f(CW\-lh\fP\fP"
نام میزبان (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
(میکروثانیههای زمان جاری) باشد\&. بدیهی است که این ارجاعات باید در برابر گسترش توسط شل محافظت شوند\&.
.IP "\fB\f(CW\-R \fP\fP"
دادههای خام (باینری) منتقلشده از نشانی سمت راست به سمت چپ را در فایل مشخصشده تخلیه میکند\&. برای سفارشیسازی نام فایل به گزینه \-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 صرفاً جهت ثبت یک پیام گزارش دریافت میشوند\&. به دام انداختن این سیگنالها برای درج اطلاعات مربوط به سیگنال در گزارشهای \fBsocat\fP مفید است، اما از تولید core dump یا سایر کنشهای پیشفرض جلوگیری میکند\&. مجموعه پیشفرض این سیگنالها عبارت است از SIGHUP، SIGINT، SIGQUIT، SIGILL، SIGABRT، SIGBUS، SIGFPE، SIGSEGV و SIGTERM؛ این مجموعه (0x89de در لینوکس) را با یک نگاشت بیتی جایگزین کنید (برای نمونه، SIGFPE دارای مقدار 8 و بیت آن 0x0080 است)\&.
.br
نکته: سیگنالهای SIGHUP، SIGINT، SIGQUIT، SIGUSR1، SIGPIPE، SIGALRM، SIGTERM و SIGCHLD ممکن است در هر حالتی بهطور ویژه مدیریت شوند\&.
.IP "\fB\f(CW\-t\fP\fP\f(CW\fP"
هنگامی که یک کانال به EOF برسد (که از طریق گزینه ignoreeof نادیده گرفته نشده باشد)، بخش نوشتن کانال دیگر متوقف (shutdown) میشود\&. سپس، \fBsocat\fP پیش از خاتمه یافتن، به مدت ثانیه [timeval] منتظر میماند\&. چنانچه در طول بازه مهلت زمانی بخش خواندن کانال دیگر نیز به EOF برسد، socat بدون انتظار برای پایان مهلت، خاتمه مییابد\&. پیشفرض 0\&.5 ثانیه است، مقدار 0 نیز معتبر است\&. این مهلت زمانی فقط برای نشانیهایی کاربرد دارد که بخشهای خواندن و نوشتن آنها را بتوان بهطور جداگانه بست یا متوقف کرد\&..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> به معنای نامحدود هستند، پیشفرض \-1 است\&.
.br
برای پروتکلهایی مانند UDP که قادر به انتقال EOF نیستند کاربردی است\&.
.IP "\fB\f(CW\-u\fP\fP"
از حالت یکطرفه استفاده میکند\&. آدرس اول فقط برای خواندن و آدرس دوم فقط برای نوشتن استفاده میشود (مثال)\&.
.IP "\fB\f(CW\-U\fP\fP"
از حالت یکطرفه در جهت معکوس استفاده میکند\&. آدرس اول فقط برای نوشتن و آدرس دوم فقط برای خواندن استفاده میشود\&.
.IP "\fB\f(CW\-g\fP\fP"
هنگام تجزیهٔ گزینههای آدرس، بررسی نمیکند که آیا گزینه در محیط آدرس مشخصشده مفید تلقی میشود یا خیر\&. در صورتی از آن استفاده کنید که بخواهید، به عنوان مثال، اِعمال یک گزینهٔ socket بر روی یک دستگاه سریالی را تحمیل کنید\&.
.IP "\fB\f(CW\-L\fP\fP\f(CW\fP"
اگر lockfile وجود داشته باشد، با خطا خارج میشود\&. اگر lockfile وجود نداشته باشد، آن را ایجاد کرده و ادامه میدهد، و هنگام خروج lockfile را حذف (unlink) میکند\&.
.IP "\fB\f(CW\-W\fP\fP\f(CW\fP"
اگر lockfile وجود داشته باشد، تا زمان ناپدید شدن آن منتظر میماند\&. وقتی lockfile وجود نداشته باشد، آن را ایجاد کرده و ادامه میدهد، و هنگام خروج lockfile را حذف (unlink) میکند\&.
.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
مشخصات آدرسی که از ساختار بالا پیروی میکنند، مشخصات آدرس \fIsingle\fP (تک) نیز نامیده میشوند\&.
دو آدرس تک را میتوان با \(dq\&!!\(dq\& ترکیب کرد تا یک آدرس از نوع \fIdual\fP (دوگانه) برای یک کانال تشکیل شود\&. در اینجا، آدرس اول توسط \fBsocat\fP برای خواندن دادهها و آدرس دوم برای نوشتن دادهها استفاده میشود\&. هیچ راهی برای تعیین یک گزینه تنها یکبار به طوری که روی هر دو آدرس تک اعمال شود وجود ندارد\&.
.PP
معمولاً آدرسها در حالت خواندن/نوشتن باز میشوند\&. هنگامی که یک آدرس بخشی از یک مشخصات آدرس دوگانه باشد، یا هنگامی که گزینهٔ \-u یا \-U استفاده شود، ممکن است یک آدرس فقط برای خواندن یا فقط برای نوشتن به کار رود\&. در نظر گرفتن این موضوع در برخی از انواع آدرس مهم است\&.
.PP
از نسخهٔ 1\&.5\&.0 و بالاتر socat، تحلیل واژگانی تلاش میکند نقلقولها و پرانتزها را به صورت معنادار مدیریت کند و امکان گریز دادن (escape) نویسههای خاص را فراهم میسازد\&.
اگر یکی از نویسههای ( { [ \(cq\& یافت شود، نویسهٔ پایانی متناظر \- ) } ] \(cq\& \- جستجو میشود؛ آنها همچنین میتوانند به صورت تو در تو باشند\&. در داخل این ساختارها، نویسهها و رشتههای خاص socat مانند : , !! به صورت ویژه پردازش نمیشوند\&. تمام این نویسهها و رشتهها را میتوان با \e یا درون \(dq\&\(dq\& گریز داد\&.
.PP.SH "انواع آدرس (ADDRESS TYPES)"
.PP
این بخش انواع آدرسهای موجود را به همراه کلمات کلیدی، پارامترها و معناشناسی آنها توصیف میکند\&.
.PP
.IP "\fB\f(CWCREATE:\fP\fP"
فایل را با
\f(CWcreat()\fP
باز کرده و از توصیفگر فایل برای نوشتن استفاده میکند\&.
این یک آدرس فقطنوشتنی است زیرا فایلی که با
\f(CWcreat\fP
باز شده باشد را نمیتوان خواند\&. گزینههای \-u و
\-U، و آدرسهای دوگانه را ببینید\&.
.br
پرچمهایی مانند O_LARGEFILE را نمیتوان اعمال کرد\&. اگر به آنها نیاز دارید از
OPEN همراه با گزینههای
create,create استفاده کنید\&.
.br
مقدار باید یک مسیر معتبر، موجود یا ناموجود باشد\&.
اگر یک لوله نامگذاریشده (named pipe) باشد،
\f(CWcreat()\fP
ممکن است مسدود (block) شود؛
اگر به یک سوکت اشاره کند، این یک خطا است\&.
.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] مشخصشده
بسته به مشخصات آدرس، تفکیک نام یا گزینه pf با استفاده از نگارش ۴ یا ۶ پروتکل IP برقرار میکند\&.
.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"
یک زیرفرآیند را fork میکند که ارتباط با فرآیند والد خود را برقرار ساخته
و برنامه مشخصشده را با
\f(CWexecvp()\fP
فراخوانی مینماید\&.
دستور یک دستور ساده است
که آرگومانهای آن با تکفاصلهها جدا شدهاند\&. اگر نام برنامه
شامل \(cq\&/\(cq باشد، بخش پس از آخرین \(cq\&/\(cq به عنوان ARGV[0] در نظر گرفته میشود\&. اگر
نام برنامه یک مسیر نسبی باشد، معناشناسی
\f(CWexecvp()\fP
برای یافتن برنامه از طریق
\f(CW$PATH\fP
اعمال میگردد\&. پس از شروع موفقیتآمیز برنامه، \fBsocat\fP دادهها را به stdin فرآیند نوشته
و با استفاده از یک سوکت دامنه یونیکس که به طور پیشفرض توسط
\f(CWsocketpair()\fP
ایجاد شده است، از stdout آن میخواند\&. (مثال)
.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] استفاده کرده و بستهها را از host
دریافت میکند، و بستههای ارسالی از سایر میزبانها را نادیده میگیرد\&.
پروتکل ۲۵۵ از سوکت خامی استفاده میکند که در آن سرآیند 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"
با استفاده از بستههای خام شامل دادههای سطح پیوند، با شبکهای متصل روی یک رابط
ارتباط برقرار میکند\&. نام رابط
شبکه است\&. در حال حاضر فقط روی Linux در دسترس است\&.
.br
گروههای گزینه: FD,SOCKET
.br
گزینههای مفید:
pf,
type
.br
همچنین ببینید: ip\-recv
.IP
.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
مطابقت دارد یا خیر\&. از این نوع نشانی برای نمونه میتوان برای پیادهسازی
ارتباطات متقارن یا نامتقارن broadcast یا multicast استفاده کرد\&.
.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، و نشانیهای دوگانه مراجعه کنید\&.
این نشانی میتواند برای مثال توسط همتاهای نشانی IP\-SENDTO در socat مخاطب قرار گیرد\&.
پروتکل ۲۵۵ از سوکت خامی استفاده میکند که در آن سرآیند 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
فایل را باز میکند
(مثال)\&.
این عملیات روی سوکتهای دامنه UNIX با شکست مواجه میشود\&.
.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 استفاده کنید تا دیتاگرامها به اندازه کافی کوچک شوند که به همراه سرریز (overhead) در شبکه جای بگیرند\&.
از گزینه \-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
نکته: هنگامی که یک لوله هم برای خواندن و هم برای نوشتن استفاده شود، مانند
یک سرویس بازآوا (echo) عمل میکند\&.
.br
نکته: هنگامی که یک لوله هم برای خواندن و هم برای نوشتن استفاده شود، و socat تلاش کند
بایتهای بیشتری نسبت به گنجایش بافر لوله بنویسد (در لینوکس 2\&.4: ۲۰۴۸ بایت)، ممکن است socat
مسدود (block) شود\&. استفاده از گزینهای در 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"
یک لوله (pipe) بدون نام ایجاد کرده و از آن برای خواندن و نوشتن استفاده میکند\&. این آدرس مانند یک پژواکدهنده (echo) عمل میکند، زیرا هر چیزی که در آن نوشته شود بلافاصله به عنوان دادهٔ خواندهشده ظاهر میشود\&.
.br
نکته: هنگامی که socat تلاش میکند بایتهای بیشتری نسبت به گنجایش صف لوله بنویسد (در لینوکس 2\&.4: ۲۰۴۸ بایت)، ممکن است socat مسدود (block) شود\&. برای مثال، استفاده از گزینهٔ
\f(CW\-b 2048\fP
را مد نظر قرار دهید\&.
.br
گروههای گزینه: FD
.br
همچنین ببینید: named pipe، SOCKETPAIR
.IP "\fB\f(CWSOCKETPAIR\fP\fP"
یک socketpair ایجاد کرده و از آن برای خواندن و نوشتن استفاده میکند\&. مانند یک پژواکدهنده عمل میکند، زیرا هر چیزی که در آن نوشته شود بلافاصله به عنوان دادهٔ خواندهشده ظاهر میشود\&. نوع سوکت پیشفرض datagram است، بنابراین مرزهای بسته (packet boundaries) را حفظ میکند\&.
.br
گروههای گزینه: FD
.br
گزینههای کاربردی:
socktype
.br
همچنین ببینید: unnamed pipe
.IP
.IP "\fB\f(CWSTALL\fP\fP"
بخش خواندن این آدرس هرگز دادهای و نه EOF ارائه میدهد؛ بخش نوشتن نیز هرگز برای نوشتن داده آماده نمیشود\&. این رفتار ممکن است برای آزمایش و برخی سناریوهای ویژه کاربردی باشد\&.
.IP
.IP "\fB\f(CWTEXT:\fP\fP"
متن ارائهشده به عنوان پارامتر به عنوان دادهٔ ورودی در نظر گرفته میشود: در یک لوله داخلی بافر شده و سپس طبق معمول پردازش میشود\&. تبدیلهای استاندارد روی رشته اعمال میشوند، بنابراین میتوانید بررسی کنید که پارامترها چگونه تجزیه و آماده میشوند که این موضوع برای آدرسهایی مانند EXEC حیاتی است\&.
.br
خروجی روی این آدرس به \f(CWstdout\fP ارسال میشود\&. بنابراین این آدرس میتواند ساختارهایی مانند:
.br
\fB\f(CWecho \(dq\&\(dq\& | socat STDIO TCP::\fP\fP
.br
را با:
.br
\fB\f(CWsocat TEXT:\(dq\&\en\(dq\& TCP::\fP\fP
.br
جایگزین کند\&. به مثال مربوط به sudo در زیر نگاهی بیندازید\&.
.IP
.IP "\fB\f(CWPOSIXMQ\-READ:/\fP\fP"
صف پیامهای POSIX مشخصشده را باز کرده یا ایجاد میکند و پیامها (بستهها) را میخواند\&. این آدرس مرزهای بسته را حفظ میکند\&.
.br
این یک آدرس فقطخواندنی است؛ گزینههای \-u و \-U و آدرسهای دوگانه (dual addresses) را ببینید\&.
.br
\fBSocat\fP این نوع آدرس را فقط در لینوکس ارائه میدهد زیرا POSIX MQ در آنجا مبتنی بر توصیفکنندههای فایل (filedescriptors) یونیکس است\&.
.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 مشخصشده را بسته به زمینه (context) در حالت خواندن و/یا نوشتن باز کرده یا ایجاد میکند، سپس پیامها (بستهها) را خوانده و/یا مینویسد\&.
در حالت دوطرفه این صرفاً یک سرویس پژواکدهنده دیگر است\&. POSIXMQ حالت دوطرفه را رد میکند تا از خالیشدن ناخواستهٔ صف جلوگیری شود؛ در صورت نیاز از POSIXMQ\-BIDIRECTIONAL استفاده کنید\&.
.br
برای اطلاعات بیشتر POSIXMQ\-READ و POSIXMQ\-SEND را ببینید\&.
.IP
.IP "\fB\f(CWPROXY:::\fP\fP"
با استفاده از نسخه ۴ یا ۶ TCP/IP بسته به تعیین نشانی، تحلیل نام یا گزینهٔ pf، به یک کارگزار پیشکار (HTTP proxy) روی درگاه ۸۰۸۰ متصل میشود و یک درخواست 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 پایانهٔ مجازی را باز کرده و مانند یک خط سریال یا پایانه از آن استفاده کند (مثال)\&. اگر هر دو سازوکار 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"
از GNU readline و history روی stdio استفاده میکند تا ویرایش و استفاده مجدد از خطوط ورودی امکانپذیر شود (مثال)\&. این قابلیت به کتابخانههای GNU readline و history نیاز دارد\&. توجه داشته باشید که stdio باید یک دستگاه پایانه (یا شبهپایانه) باشد، در غیر این صورت به نظر میرسد readline کار نمیکند\&.
.br
گروههای گزینه: FD,READLINE,TERMIOS
.br
گزینههای کاربردی:
history,
noecho
.br
همچنین ببینید:
STDIO
.IP "\fB\f(CWSCTP\-CONNECT::\fP\fP"
یک اتصال جریانی SCTP به [نشانی IP] و [سرویس TCP] مشخصشده با استفاده از نسخه ۴ یا ۶ IP بسته به تعیین نشانی، تحلیل نام یا گزینهٔ pf برقرار میکند\&.
.br
گروههای گزینه: FD,SOCKET,IP4,IP6,SCTP,CHILD,RETRY
.br
گزینههای کاربردی:
bind,
pf,
connect\-timeout,
tos,
mtudiscover,
mtudiscover6,
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 برابر با 4 یا نسخه مشخصشده با
گزینه آدرس 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 (صفحه راهنمای socket(2) را ببینید) یک سوکت جریانی ایجاد کرده و به remote\-address متصل میشود\&.
این دو پارامتر سوکت باید با اعداد
int مشخص شوند\&. برای یافتن مقادیر مناسب به مستندات سیستمعامل و فایلهای سرآیند خود مراجعه کنید\&. آرگومان remote\-address باید نمایش دادهای
از یک ساختار sockaddr بدون مؤلفههای sa_family و (در BSD) sa_len
باشد\&.
.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"
با استفاده از سه پارامتر سوکت دادهشده نخست (صفحه
راهنمای socket(2) را ببینید) یک سوکت دیتاگرام ایجاد کرده و دادههای خروجی را به remote\-address ارسال میکند\&. این سه
پارامتر سوکت باید با اعداد int
مشخص شوند\&. برای یافتن مقادیر مناسب به مستندات سیستمعامل و فایلهای سرآیند خود مراجعه
کنید\&. آرگومان remote\-address باید نمایش دادهای
از یک ساختار sockaddr بدون مؤلفههای sa_family و (در BSD) sa_len
باشد\&.
.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 مشخص شوند\&. برای یافتن مقادیر مناسب به مستندات سیستمعامل و فایلهای سرآیند خود
مراجعه کنید\&. آرگومان local\-address باید
نمایش دادهای از یک ساختار sockaddr بدون
مؤلفههای sa_family و (در BSD) sa_len باشد\&.
.br
لطفاً توجه داشته باشید که علاوه بر گزینههای گروههای مشخصشده، در صورت اعمال گزینه \-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) را ببینید)
یک سوکت ایجاد کرده و آن را به مقید میکند\&. دادههای ورودی را دریافت میکند\&. این سه
پارامتر باید با اعداد int مشخص شوند\&. برای یافتن مقادیر مناسب به
مستندات سیستمعامل و فایلهای سرآیند خود مراجعه کنید\&. آرگومان
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 مشخص شوند\&. برای یافتن مقادیر مناسب به مستندات سیستمعامل و فایلهای سرآیند خود
مراجعه کنید\&. آرگومان 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 mode\(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 متصل میشود (example)\&.
.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,
socksuser,
sockspass,
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"
با استفاده از پروتکل socks نسخهٔ ۵ بر روی TCP به [آدرس IP]
متصل میشود
و آن را برای پذیرش اتصالهای ورودی روی [سرویس 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
این یک آدرس فقطنوشتنی است، گزینههای \-u و
\-U، و آدرسهای دوگانه (dual addresses) را ببینید\&.
.br
گروههای گزینه: FD (TERMIOS,REG,SOCKET)
.br
همچنین ببینید: FD
.IP "\fB\f(CWSTDIN\fP\fP"
از توصیفگر فایل ۰ استفاده میکند\&.
.br
این یک آدرس فقطخواندنی است، گزینههای \-u و
\-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
این یک آدرس فقطنوشتنی است، گزینههای \-u و
\-U، و آدرسهای دوگانه را ببینید\&.
.br
گروههای گزینه: FD (TERMIOS,REG,SOCKET)
.br
همچنین ببینید: FD
.IP "\fB\f(CWSHELL:\fP\fP"
.IP "\fB\f(CWSHELL\fP\fP"
یک زیرپردازه را منشعب (fork) میکند که ارتباط با پردازهٔ والد خود را برقرار ساخته
و برنامهٔ مشخصشده را با شل پیکربندیشده ($SHELL) فراخوانی مینماید\&.
توجه داشته باشید که [رشته] نباید
شامل \(cq\&,\(cq\& یا \(dq\&!!\(dq\& باشد، و ممکن است نویسهٔ \(cq\&:\(cq\& و نویسههای متای شل نیاز به
محافظت (escape) داشته باشند\&.
پس از شروع موفقیتآمیز برنامه، \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"
یک زیرپردازه را فورک (fork) میکند که ارتباط با پردازه والد خود را برقرار کرده
و برنامه مشخصشده را با
\f(CWsystem()\fP
فراخوانی میکند\&. لطفاً توجه داشته باشید که
[رشته] نباید
شامل \(cq\&,\(cq\& یا \(dq\&!!\(dq\& باشد، و نویسههای فرا (meta characters) پوسته ممکن است نیاز به
حفاظت (escape) داشته باشند\&.
پس از شروع موفقیتآمیز برنامه، \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,
mtudiscover6,
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 است\&.
توجه داشته باشید که باز کردن
این نشانی معمولاً تا زمان اتصال یک کلاینت مسدود (block) میشود\&.
.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 لینوکس ایجاد کرده و به صورت اختیاری نشانی و
netmask ارائهشده توسط پارامترها را به آن اختصاص میدهد\&. رابط شبکه حاصل تقریباً
برای استفاده توسط سایر پردازهها آماده است؛ socat به «سمت سیمی» (\(dq\&wire side\(dq\&) آن خدمترسانی میکند\&. این نشانی
نیازمند دسترسی خواندن و نوشتن به دستگاه شبیهساز تونل، معمولاً
\f(CW/dev/net/tun\fP
، و همچنین مجوز تنظیم برخی از \f(CWioctl()s\fP است\&.
\fBگزینه iff\-up برای فعالسازی فوری رابط لازم است!\fP
.br
نکته: اگر قصد انتقال بستهها بین دو «سمت سیمی» socat را دارید،
به پروتکلی نیاز دارید که مرزهای بستهها را حفظ کند، مانند UDP؛ پروتکل TCP ممکن است با
گزینه nodelay کار کند\&.
.br
گروههای گزینه: FD,NAMED,OPEN,TUN
.br
گزینههای مفید:
iff\-up,
tun\-device,
tun\-name,
tun\-type,
interface\-mtu,
iff\-no\-pi,
netns
.br
همچنین ببینید:
ip\-recv
.IP
.IP "\fB\f(CWUDP::\fP\fP"
به [سرویس UDP] روی
[آدرس IP] با استفاده از UDP/IP نسخه ۴ یا ۶
بسته به مشخصات نشانی، تفکیک نام، یا گزینه
pf متصل میشود\&.
.br
لطفاً توجه داشته باشید که به دلیل ویژگیهای پروتکل UDP، هیچ اتصال واقعی
برقرار نمیشود؛ برای «اتصال» به سرور باید داده ارسال شود، و هیچ
وضعیت پایان فایل (end\-of\-file) قابل انتقال نیست\&.
.br
از نسخه 1\&.8\&.1\&.0، سوکت هنگام خاموش شدن، یک بسته UDP با
طول صفر ارسال میکند که ممکن است وضعیت EOF را در طرف مقابل تحریک کند (گزینه ضمنی
shut\-null)\&.
رفتار پیشین را میتوانید با گزینه shut\-none بازیابی کنید\&.
.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
مطابقت داشته باشد\&. این نوع آدرس میتواند برای نمونه جهت پیادهسازی ارتباطات
متقارن یا نامتقارن broadcast یا multicast به کار رود\&.
.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
پشتیبانی میکند (example1،
example2)\&.
.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] میماند و به فرستنده `connects\(cq\& میکند\&.
نسخهٔ IP پذیرفتهشده 4 یا نسخهٔ مشخصشده با گزینهٔ
pf است\&.
لطفاً توجه داشته باشید که به دلیل ویژگیهای پروتکل UDP، هیچ اتصال واقعی
برقرار نمیشود؛ دادهها ابتدا باید از سمت طرف مقابل برسند، بنابراین، باز کردن
این آدرس معمولاً تا زمان اتصال یک کلاینت مسدود میشود\&. علاوه بر این،
هیچ وضعیت پایان فایلی (EOF) در UDP مشخص نشده است\&.
.br
از نسخهٔ 1\&.8\&.1\&.0، سوکت هنگام خاموش شدن یک بستهٔ UDP
با طول صفر میفرستد که ممکن است EOF را در طرف مقابل فعال کند (گزینهٔ ضمنی
shut\-null)\&.
رفتار پیشین را با گزینهٔ shut\-none بازیابی کنید\&.
.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 نسخهٔ 4 یا 6
بسته به تعیین نشانی، تفکیک نام، یا گزینهٔ
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 نسخهٔ 4 یا 6
بسته به گزینهٔ 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
این یک آدرس فقطخواندنی است، گزینههای \-u و
\-U، و آدرسهای دوگانه (dual addresses) را ببینید\&.
.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: