انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: عملكرد توابع setsockopt و poptGetContext چيست؟  (دفعات بازدید: 1861 بار)

0 کاربر و 2 مهمان درحال مشاهده موضوع.

آفلاین dr-solomons

  • Newbie
  • *
  • ارسال: 9
با سلام
عملكرد تابع setsockopt با فرم كلي زير چيست؟
ميدانم كه دستكاري موارد قابل تنظيم تابع socket است (بيش از اين)
flag = 1;
setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &flag, sizeof(flag));
عملكرد تابع poptGetContext و poptGetNextOpt چيست؟
كد زير بهتر فرم اين تابع را نمايش مي دهد
char c;
poptContext optCon;
struct poptOption optionsTable[] = {
{ "server", 's', POPT_ARG_STRING, &server_string, 0,
  "server name", "name|IP" },
{ "port", 'p', POPT_ARG_INT, &port, 0,
  "server port number", "port" },
POPT_AUTOHELP
{ NULL, 0, 0, NULL, 0 }
};

optCon = poptGetContext("forwarder", argc, (const char **)argv,
optionsTable, 0);
while ((c = poptGetNextOpt(optCon)) >= 0);

if (c < -1) {
/* an error occurred during option processing */
fprintf(stderr, "%s: %s\n",
poptBadOption(optCon, POPT_BADOPTION_NOALIAS),
poptStrerror(c));
exit(1);
}
چرا while فقط يك خط است؟

با تشكر فراوان

آفلاین z.k

  • Full Member
  • *
  • ارسال: 217
پاسخ به: عملكرد توابع setsockopt و poptGetContext چيست؟
« پاسخ #1 : 20 مهر 1388، 10:52 ق‌ظ »
سلام

setsocketopt:
وقتی یک socket تو برنامه تعریف میشه، به صورت پیش فرض اندازه های بافر های ارسال و دریافت مربوط به این socket بزرگ است. برای تنظیم اندازه های این بافر ها به اندازه دلخواه از این تابع استفاده میشود.

poptGetContext و  poptGetNextOpt :
این توابع به منظور تجزیه آرگومان های برنامه مورد استفاه قرار میگیرند.
poptGetContext:
محتوایی است که بر اساس آن آرگو مان ها تجزیه میشوند.

دلیل استفاده از while این است که، تمامی آرگومان ها،  تا انتها بررسی شوند تا  به محتوای مورد نظر برسد، در صورتیکه که به انتها رسید و چیزی نبود، خروجی -۱ میشود.

آفلاین dr-solomons

  • Newbie
  • *
  • ارسال: 9
پاسخ به: عملكرد توابع setsockopt و poptGetContext چيست؟
« پاسخ #2 : 21 مهر 1388، 09:45 ب‌ظ »
با تشكر فراوان از شما دوست عزيز