E – Kermit – سرایت کے لیے Kermit۔

 

Origninal Page Here

سرایت کے لیے کومپیکٹ ، تیز ، قابل اعتماد اور پورٹیبل کرمیٹ فائل ٹرانسفر پروٹوکول۔

ورژن  :  1.7

تاریخ  : 6 جون ، 2011۔

اس صفحے کو آخری بار اپ ڈیٹ کیا گیا تھا  : 9 اپریل ، 2019۔

اوپن سورس اعلان  : 30 مارچ 2011 کو ای کرمٹ کا ورژن 1.6 نظر ثانی شدہ 3 کلاز بی ایس ڈی لائسنس کے تحت “جیسا کہ” جاری کیا جائے گا  ۔

مشمولات

  1. مینجمنٹ پروگرام
  2. فائلوں کی منتقلی
  3. سورس کوڈ
  4. یونکس ورژن۔
  5. ایک نئے پلیٹ فارم میں منتقل کریں۔
  6. ڈیبٹ
  7. ریلیز کی تاریخ۔
  8. ڈاؤن لوڈ کریں

ای کے (ایمبیڈڈ کرمٹ ، ای کرمیٹ) اے این ایس آئی سی میں لکھے گئے کرمٹ فائل ٹرانسفر پروٹوکول کا نفاذ ہے اور اسے ڈیوائسز اور فرم ویئر میں مربوط کرنے کے لیے ڈیزائن کیا گیا ہے ، جو ریئل ٹائم ایپلی کیشن میں استعمال ہوتا ہے ، یا ڈی ایل ایل اور لائبریریاں بنانے کے لیے۔ EKSW E-Kermit کا ایک نیا ورژن ہے جس میں سچ سکرولنگ پیکٹ ٹرانسمیشن شامل ہے۔ EK اور EKSW کو ایک ہی کوڈ بیس میں متفق ہونا چاہیے تھا ، لیکن اب تک ایسا نہیں ہوا۔

E-Kermit کیا کرتا ہے۔

EK صرف دو افعال انجام دیتا ہے: فائلیں بھیجیں اور فائلیں وصول کریں۔ یہ کمپیکٹ ، پورٹیبل اور دوبارہ استعمال کے قابل ہے۔ SPARC (RISC) میں ، kermit.o تقریباK 25K ہے۔ انٹیل (CISC) میں یہ تقریبا 15K ہے۔ بفر کے سائز کو کم کرکے اور اضافی یا ناپسندیدہ افعال کو ختم کرکے ، ایک چھوٹا سائز حاصل کیا جاسکتا ہے۔

ای کرمٹ کیا نہیں کرتا۔

EK   میں کلائنٹ / سرور افعال شامل نہیں ہیں کمانڈ یا سکرپٹ پروگرامنگ زبان کردار کی تبدیلی ٹرانسپورٹ خفیہ کاری یا کسی بھی قسم کی مواصلات یا فائل ان پٹ / آؤٹ پٹ۔ یہ موڈیم ڈائل نہیں کرتا ، یہ کنکشن قائم نہیں کرتا ، اس میں مربوط TCP / IP اسٹیک نہیں ہے۔ اگر آپ کو ان خصوصیات کی ضرورت ہے تو ، آپ کو ایک مکمل خصوصیات والا کرمٹ پروگرام استعمال کرنا چاہیے جیسے  سی کرمٹ    یا   کرمٹ 95  ۔

ای کے خود ایپلی کیشن نہیں ہے ، یہ ایک سبروٹین ہے جسے مین ایپلیکیشن کہتے ہیں۔ یہ صرف ان ڈویلپرز کے لیے مفید ہے جنہیں ایپلیکیشن یا کالنگ کا ماحول فراہم کرنے کی ضرورت ہوتی ہے ، اسی طرح فائل I / O اور پیغام کے معمولات بھی۔ اس کے نتیجے میں ، کالنگ ماحول کو لازمی طور پر انجام دینا اور مواصلات قائم کرنا ضروری ہے اگر ضروری ہو اور ابھی تک کھلا نہ ہو۔ یونکس ایپلی کیشن ماحول کالز اور I / O سپورٹ فراہم کرتا ہے۔

صارفین نے EK کو مختلف ماحول اور پلیٹ فارمز میں ڈھال لیا ہے ، بشمول پام پائلٹ ، تکنیکی ماہرین کے لیے مختلف قسم کے آلات (مثال کے طور پر ، سیل فون ٹاورز کی تشخیص اور دیکھ بھال کے لیے) ، اور بعض اوقات اپنی مرضی کے مطابق یا I / O طریقہ کار بناتے ہیں اور ہم انہیں دستیاب کر سکتے ہیں۔ سخت بنیاد پر. ہم صارفین کو فراہم کردہ کوڈ کی حمایت نہیں کر سکتے۔ لہذا (مثال کے طور پر) جب EK کا نیا ورژن جاری کیا جاتا ہے تو ، صارف کے ذریعہ شامل کردہ ماڈیول لازمی طور پر اپ ڈیٹ نہیں ہوتے ہیں۔ کسٹمر کے داخل کردہ کوڈ میں شامل ہیں:

  • مائیکروسافٹ  ونڈوز 9x / ME / NT / 2000 / XP / Vista / 7  سیریل پورٹ اور فائل I / O EK 1.3 اور  اس سے اوپر کے لیے  ۔
  •  EK 1.1 کے لیے ونڈ ریور  VxWorks
  • EK 1.2 کا جاوا میں ترجمہ کیا گیا  ہے  ۔

EK میں درج ذیل کرمیٹ پروٹوکول خصوصیات شامل ہیں:

  • لمبے پیکجز۔
  • سلائڈنگ ونڈوز گو بیک ٹو این غلطی کی بازیابی کے ساتھ (EKSW میں صحیح انتخابی تکرار)
  • تکرار کے ساتھ کمپریشن۔
  • کنٹرول کردار کا سابقہ ​​اور اس کے برعکس۔
  • 8 بٹ سابقہ ​​(7 بٹ لنکس پر 8 بٹ ڈیٹا ٹرانسفر کے لیے) (= برابری)
  • انتساب پیکجز (قسم ، سائز اور تاریخ)
  • ایک یا زیادہ فائلیں بھیجیں اور وصول کریں۔
  • متن اور بائنری طریقوں کے درمیان خودکار سوئچنگ۔
  • تینوں قسم کے کنٹرول بلاکس (6 بٹ اور 12 بٹ چیکسم ، 16 بٹ سی آر سی)۔
  • سٹیٹس رپورٹس (پروٹوکول سٹیٹس ، فائل کا نام ، سائز ، ٹائم سٹیمپ ، بائٹس وغیرہ)
  • کسی ایک فریق کی منتقلی منسوخ کریں۔

کرمٹ پروٹوکول کی درج ذیل خصوصیات نافذ نہیں ہیں:

  • سلیکٹو ری ٹرانسمیشن کے ساتھ سلائڈنگ ونڈوز (EKSW کو چھوڑ کر)
  • کریکٹر سیٹ۔
  • تبدیلیوں کو مسدود کریں۔
  • کلائنٹ / سرور

ٹائم آؤٹ رابطے کے دوسرے سرے پر کرمٹ پروگرام کے ذمہ دار ہوں گے ، یا اگر ضروری ہو تو ، ای کرمٹ میں ہی ، جو کہ لکھے جانے والے پیکیج کے پڑھنے کے طریقہ کار کے پلیٹ فارم پر منحصر ہے۔

ورژن 1.5 سے شروع کرتے ہوئے ، ای کرمٹ میں پری پروسیسر ڈیزائن شامل ہیں جو آپ کو مختلف خصوصیات کو غیر فعال کرنے کی اجازت دیتے ہیں جیسے لمبے پیکٹ ، سکرول ونڈوز ، اور کم سے کم میموری حاصل کرنے کے لیے اعلی آرڈر بلاکس کو چیک کریں اور یہاں تک کہ صرف داخلے کی ترتیب میں بھی بنایا جا سکتا ہے۔

مینجمنٹ پروگرام

EK کو باہمی تعاون کے ساتھ ملٹی ٹاسکنگ ماحول میں کام کرنے کے لیے ڈیزائن کیا گیا ہے ، لیکن اس طرح کے ماحول کی ضرورت نہیں ہے۔ مینجمنٹ پروگرام منصوبہ بندی کا خیال رکھتا ہے۔ یہاں ایک مینجمنٹ پروگرام کیا کرنا چاہیے (اور / یا کر سکتا ہے):

  • اگر مطلوب ہو تو ، اگر کوئی ہو تو مواصلاتی آلات کھولیں۔
  • اگر آپ کسی بھی مواصلاتی آلات کو “بیچ موڈ” میں انسٹال کرنا چاہتے ہیں۔
  • مطلوبہ آپریشنل پیرامیٹرز کے ساتھ کرمٹ ڈھانچے کو شروع کریں۔
  • کرمیٹ (K_INIT ،…) کو کال کریں تاکہ کرمیٹ کو شروع کیا جا سکے۔
  • فائلیں بھیجتے وقت ، منتقلی شروع کرنے کے لیے کرمٹ (K_SEND) کو کال کریں۔

(جب E-Kermit فائلیں وصول کرتا ہے ، یہ فائل کے بھیجنے والے سے پہلے پیکٹ کا غیر فعال طور پر انتظار کرتا ہے ، پھر صرف پیکٹ لوپ میں داخل ہوتا ہے۔) E-Kermit پیکٹ لوپ میں:

  • بفر ملتا ہے اور آنے والا پیکٹ پڑھتا ہے۔
  • صارف کی مداخلت کی جانچ کریں۔
  • پروٹوکول میں اگلا مرحلہ انجام دینے کے لیے کرمٹ (K_RUN ،…) کو کال کریں۔
  • وہ جو چاہتا ہے کرتا ہے (مثال کے طور پر ، دوسرے کام کرتا ہے)۔
  • kermit () ریٹرن کوڈ پر مبنی لوپ سے باہر نکلیں یا جاری رکھیں۔

جب بھی کنٹرول پروگرام kermit () فنکشن کو کال کرتا ہے ، یہ ایک پیکٹ پر کارروائی کرنے کی اجازت دیتا ہے۔ لہذا ، ایک پیک = ایک ٹکڑا۔ جب کسی مینجمنٹ پروگرام کے پاس مزید کچھ نہیں ہوتا ہے تو ، یہ عام طور پر ایک عام کرمیٹ پروگرام کی طرح پیکیجز پر مسلسل عمل کرتا ہے۔ ڈیٹا لوپ کے دوران ، ہر kermit () کال ایک ڈھانچہ لوٹاتی ہے جس پر مشتمل ہے:

  • پروٹوکول کی موجودہ حالت
  • موجودہ فائل کا نام
  • فائل کا سائز ، اگر معلوم ہو ، یا -1
  • فائل کے وقت کا اندازہ لگائیں اگر معلوم ہو۔
  • منتقل ہونے والے بائٹس کی تعداد۔

ایک بار جب یہ ہوجائے تو ، مینجمنٹ پروگرام:

  • دوبارہ ترتیب دیں اور (اگر ضروری ہو) مواصلاتی آلہ بند کریں۔

مختصر کوڈز جن کے ساتھ کنٹرول پروگرام kermit () کو کال کر سکتا ہے:

K_INIT – ڈیٹا ڈھانچے کو شروع کرتا ہے۔

K_SEND – (صرف بھیجیں) – بھیجنا شروع کرتا ہے۔

K_RUN – پروٹوکول چلائیں۔

K_STATUS – k_response ڈھانچے میں اسٹیٹس رپورٹ لوٹاتا ہے۔

K_QUIT – فوری طور پر اور خاموشی سے باہر نکلیں۔

K_ERROR – ایک ایرر پیکٹ بھیجیں اور پھر باہر نکلیں۔

کرمٹ () کوڈ واپس کریں:

X_OK – ٹھیک ہے ، پروٹوکول فعال ہے۔

X_DONE – ٹھیک ہے ، پروٹوکول مکمل ہو گیا۔

X_ERROR – مہلک خرابی

X_STATUS – K_STATUS کے جواب میں سٹیٹس لوٹ آئی۔

(دراصل ، اسٹیٹس کو ہر کال کے ساتھ دوبارہ تشکیل دیا جاتا ہے۔) پروٹوکول اسٹیٹس کوڈز:

-1 – مہلک غلطی

 0 – وصول کنندہ (پروٹوکول کام نہیں کرتا)

 1 – وصول کنندہ ایس پیکٹ کا انتظار کر رہا ہے۔

 2 – وصول کنندہ پیکٹ F یا B کا انتظار کر رہا ہے۔

 3 – وصول کنندہ پیکٹ A یا D کا انتظار کر رہا ہے۔

 4 – وصول کنندہ پیکٹ D یا Z کا انتظار کر رہا ہے۔

10 – بھیجنے والا (پروٹوکول کام نہیں کر رہا)

11 – بھیجنے والے نے ایس (اسٹارٹ) پیکٹ بھیجا۔

12 – بھیجنے والے کی طرف سے پیکٹ ایف بھیجا گیا (فائل کا نام)

13 – مرسل کی طرف سے بھیجا گیا پیکٹ (صفات)

14 – بھیجنے والے نے پیکٹ D (ڈیٹا) بھیجا

15 – بھیجنے والے نے پیکٹ Z (EOF) بھیجا

16 – بھیجنے والے نے پیکٹ بی بھیجا (EOT)

فائلوں کی منتقلی

چونکہ EK بنیادی طور پر سرایت کرنے کے لیے ہے ، اس لیے اسٹریمنگ یا (EKSW کو چھوڑ کر) حقیقی سلائیڈنگ ونڈوز استعمال نہیں کرتا (حالانکہ سلائیڈنگ ونڈوز کے لیے زیادہ تر کوڈ موجود ہے)۔ یہ مندرجہ ذیل وجوہات کی بنا پر ہوتا ہے:

  • معمول کے ACK / NAK پروٹوکول کا استعمال کنٹرول پروگرام کو ہر پیکٹ کے بعد دوبارہ کنٹرول حاصل کرنے کی اجازت دیتا ہے۔ یہ ملٹی ٹاسک کرنے کی اجازت دیتا ہے ، فائل ٹرانسفر کا گرافیکل ویو دیکھیں ، جو کچھ بھی ہو۔ انک جیٹ یا سلائیڈنگ ونڈوز ایک مینجمنٹ پروگرام کو طویل عرصے تک ناکام بنا سکتی ہیں۔
  • ریئل اسٹریمنگ یا سکرول ایبل ونڈوز کنٹرولر اور کرمٹ () ماڈیول کے مابین انٹرفیس کو زیادہ پیچیدہ بنا دے گی اور دراصل پروٹوکول کی بہت سی تفصیلات کو کنٹرولر اسپیس میں دھکیل دے گی جس سے ان کا تعلق نہیں ہے۔
  • براڈ کاسٹ صرف محفوظ کنکشن (جیسے TCP / IP) کے لیے استعمال کیا جا سکتا ہے ، لیکن مربوط مواصلات والے آلات عام طور پر سیریل پورٹس استعمال کرتے ہیں۔

EK میں حقیقی سلائیڈنگ ونڈوز کی کمی اس حقیقت سے پوری کی جاتی ہے کہ EK بغیر کام کیے ان کا ساتھ دینا کا بہانہ کت ? غلطی کی صورت میں ، بازیابی کی حکمت عملی “سلیکٹو ریڈو” کے بجائے “واپس لوٹ جائے گی” (یا شاید کچھ معاملات میں “غلطی۔”) EKSW ، ایک علیحدہ پروگرام جو EK (لیکن ہونا چاہیے) کے ساتھ مربوط نہیں ہے ، منتخب تکرار کے ساتھ درست سلائیڈنگ نڈ تا ت یعنی ، صرف وہ پیکٹ جو واقعی ہونے چاہئیں منتقل کیے جاتے ہیں۔

تاہم ، جیسا کہ EK بنیادی طور پر سرایت کرنے کے لیے ڈیزائن کیا گیا ہے ، دونوں سروں پر تاخیر کا کوئی بڑا عنصر ہونے کی توقع نہیں ہے۔ کنکشن عام طور پر مقامی ، مختصر ، نسبتا fast تیز ہوتے ہیں ، اور ، اگر کنکشن واقعی بہاؤ سے کنٹرول شدہ ہو ، غلطی سے پاک ہو۔ اگر موثر بہاؤ کنٹرول کی کمی ہے تو ، رفتار اور / یا پیکٹ کی لمبائی اور / یا کھڑکی کا سائز ان اقدار کے مجموعے پر سیٹ کیا جا سکتا ہے جو بینڈوڈتھ کو زیادہ سے زیادہ اور ڈیٹا کے نقصان کو کم سے کم کرتے ہیں۔

سورس کوڈ

 ماخذ فائلیں:

پلیٹ فارم h

کسی بھی #کی ہیڈر فائل میں مطلوبہ پلیٹ فارم یا تعریفیں شامل ہوتی ہیں۔ 

ضروری ہے چاہے وہ خالی ہو کیونکہ kermit.c اس میں شامل ہے۔

kermit.h

تمام ماڈیولز کے لیے ہیڈر فائل۔ k_data اور k_response ڈھانچے کی وضاحت کریں۔

kermit.c

یہ کرمٹ پروٹوکول کا طریقہ کار ہے۔ یہ مکمل طور پر کال ڈیٹا پر منحصر ہے۔ تمام ریاستی معلومات کرمیٹ ڈیٹا ڈھانچے میں محفوظ کی جاتی ہیں ، جو مرکزی ماڈیول کے حوالہ سے اور کرمٹ ماڈیول کے تمام افعال کے درمیان اور مرکزی ماڈیول پر واپس جاتی ہیں۔ لہذا ، ایک ہی ماڈیول کو بیک وقت ایک سے زیادہ فائلوں کو مختلف کنکشن پر منتقل کرنا ہوگا۔ نیز ، کرمٹ ماڈیول میں لائبریری کا کوئی حوالہ نہیں ہے ، کوئی بھی نہیں ، یہاں تک کہ stdio بھی نہیں (جب تک کہ ڈیبگنگ فعال نہ ہو) ، اور کوئی / usr / include / * ہیڈر فائلیں نہیں ہیں۔ kermit.c کے قواعد:

  • کوئی عالمی متغیرات (ڈیبگنگ کے علاوہ) یا بفرز نہیں۔
  • صف مرتب کرنے والے کا کوئی آغاز نہیں۔
  • صرف محفوظ رہنے کے لیے ، یہ خودکار اسکیلرز کو شروع نہیں کرتا۔
  • کوئی لائبریری یا سسٹم کال نہیں ، کوئی #شامل <…> نہیں۔
  • تمام I / O آپریشن انفرادی ماڈیولز میں بیان کردہ افعال کے ذریعے انجام پاتے ہیں۔

kermit.c ماڈیول کا واحد اندراج نقطہ kermit () فنکشن ہے:

int kermit (struct k_data * k ، struct۔ 

k_answer * r)

main.c

سیمپلنگ مینجمنٹ پروگرام۔ یونکس ٹیسٹ بیڈ پر ، یہ صرف ایک روایتی مین () فنکشن ہے جو کمانڈ لائن آرگمینٹس کو پڑھتا ہے ، پروٹوکول کو شروع کرتا ہے ، اور پھر پروٹوکول ماڈیول کو پوزیشن کنٹرولڈ لوپ میں کال کرتا ہے جب تک کہ اس پر عملدرآمد نہ ہو اور پھر صاف نہ ہو جائے۔ سرایت شدہ ماحول میں ، ان افعال کو کنٹرول پروگرام میں ضم کیا جائے گا۔

unixio.c

یونکس I / O افعال اپنے ماڈیول کو تبدیل کریں جو ہدف کے ماحول میں ان افعال کو نافذ کرتا ہے اور اس کو جوڑنے کے لیے تعمیر کے طریقہ کار میں ترمیم کرتا ہے۔ انٹری پوائنٹس اور کال کے انتظامات ذیل میں بیان کیے گئے ہیں۔

یونکس ورژن۔

EK ایک روایتی یونکس پلیٹ فارم پر تیار کیا گیا ہے ، جیسے سولاریس ، HP-UX ، یا لینکس ، جہاں EK کو G-Kermit کی طرح ریموٹ کنٹرول کرمٹ فائل ٹرانسفر پروگرام کے طور پر بنایا گیا ہے ، اور اسی طرح K95 یا Kermit ڈیسک ٹاپ کے خلاف تجربہ کیا گیا ہے۔ سی کرمٹ۔ نوٹ. یونکس ورژن stdin / stdout پر چلتا ہے۔ “لائن” زیادہ سخت طریقے کی وجہ سے ہے (سسٹم (“stty…”))۔ 1700Kcps پریشان نہ ہوں کیونکہ EK یونیکس میں استعمال کے لیے نہیں بنایا گیا ہے ، جس میں پہلے ہی G -Kermit اور C -Kermit پیداوار کے لیے موجود ہیں۔

یونکس میک فائل کے درج ذیل اہداف ہیں (آسانی سے مزید شامل کریں):

gcc: gcc (ڈیفالٹ) کے ساتھ مرتب کریں۔

سی سی: سی سی کے ساتھ تعمیر کریں

hp: HP-UX کے لیے تعمیر کریں۔

gccnd: ڈیبگنگ کے بغیر ، gcc کے ساتھ مرتب کریں۔

gprof: gcc کے ساتھ بنائیں ، پروفائلنگ کو فعال کریں۔

صاف: دانا اور آبجیکٹ فائلوں کو صاف کرتا ہے۔

میک فائل ایک ایگزیکیوٹیبل یونکس فائل بناتی ہے جسے “ek” کہا جاتا ہے (بلٹ ان کرمیٹ)۔ اہم () مثال کا طریقہ کار ایک سادہ کمانڈ لائن انٹرفیس فراہم کرتا ہے:

$ ./ek -h

استعمال: ./ek  اختیارات۔

اختیارات:

 -r فائل وصول کریں۔

 -s  فائل فائل            بھیجیں۔

 -p [neoms] برابری: کوئی نہیں ، یہاں تک کہ ، عجیب ، نشان ، جگہ۔

 -b [123] بلاک کنٹرول کی قسم: 1 ، 2 یا 3 (ڈیفالٹ = 3)

 -k موصول ہونے والی فائلوں کو ادھورا رکھیں۔

 -B فورس بائنری موڈ۔

 -T ٹیکسٹ موڈ کو مجبور کریں۔

 -R ریموٹ موڈ (بمقابلہ مقامی)

 -L لوکل موڈ (بمقابلہ ریموٹ)

 -E  نمبر        نقلی غلطی کی شرح (0-100)

 -d debug.log بنائیں۔

 -h مدد (یہ پیغام)

$

فائلیں بھیجتے وقت ، اگر آپ کسی ٹیکسٹ یا بائنری فائل کی وضاحت نہیں کرتے ہیں تو ، EK ہر فائل کو اسکین کرتا ہے اور اس کے مواد کی بنیاد پر ایک ٹیکسٹ یا بائنری موڈ منتخب کرتا ہے۔

ریموٹ / لوکل موڈ صرف فائل ٹرانسفر ایبورٹ ٹیسٹ کو فعال کرنے کے لیے استعمال کیا جاتا ہے۔

پارٹی نیا پلیٹ فارم ہے۔

ورژن 1.0 EK کو VxWorks پر Airvana ، Inc. ، Chelmsford MA نے پورٹ کیا تھا۔ مکمل VxWorks EK 1.1 پیکیج کو ایئر وانا کی اجازت سے پروڈکشن سسٹم کی مثال کے طور پر شامل کیا گیا ہے۔ نئے پلیٹ فارم سے رابطہ قائم کرنے کے لیے:

  • اپنے مقصد کے لیے ایک نیا Makefile اندراج شامل کریں یا اپنا اپنا تعمیراتی طریقہ کار لکھیں۔
  • اپنے پلیٹ فارم کے لیے ایک platform.h فائل بنائیں۔ اس میں کوئی بھی #شامل یا مطلوبہ تعریفیں شامل ہوسکتی ہیں اور kermit.h میں بعض تعریفوں کو اوور رائیڈ کرنے کے لیے بھی استعمال کیا جا سکتا ہے۔

#ڈیبگنگ کوڈ کے بغیر نوڈبگ کی وضاحت کریں۔

#HAVE_UCHAR کی وضاحت کریں اگر UCHAR پہلے سے ہی متعین ہے یا غیر دستخط شدہ کردار ٹائپ کرتا ہے

#Devine HAVE_ULONG اگر ULONG پہلے سے ہی متعین ہے یا بغیر دستخط شدہ ٹائپڈف کردار

#define IBUFLEN ان پٹ فائل بفر کے لیے مطلوبہ سائز ہے۔

#Dubine OBUFLEN – آؤٹ پٹ بفر کے لیے مطلوبہ سائز۔

#FN_MAX کو فائل کے نام کی زیادہ سے زیادہ لمبائی کے طور پر متعین کریں۔

#ڈیفالٹ زیادہ سے زیادہ پیکٹ کی لمبائی کو اوور رائیڈ کرنے کے لیے P_PKTLEN کی وضاحت کریں۔

#ڈیفالٹ P_WSLOTS زیادہ سے زیادہ ونڈو رینجز کو بطور ڈیفالٹ اوور رائیڈ کریں۔

  • main.c مثال کو اپنے کنٹرول پروگرام سے تبدیل کریں۔ اسی شمولیت اور ایکٹیویشن معاہدوں کو استعمال کریں جیسا کہ مثال میں ہے۔
  • unixio.c فائل کو xxxio.c (جو بھی نام آپ چاہیں) میں کاپی کریں ، بالکل اسی کالنگ کنونشنز کا استعمال کرتے ہوئے اپنے پلیٹ فارم پر کام کرنے کے لیے اس میں ترمیم کریں ، اور اپنے نئے xxxio ماڈیول کو unixio کے بجائے باندھنے کے لیے تعمیر کے عمل کو ایڈجسٹ کریں۔ نوٹ کریں کہ بفر ان پٹ اور آؤٹ پٹ (i_buf [] اور o_buf []) کی وضاحت XXXio طریقہ کار میں ہونی چاہیے۔

یہاں I / O ماڈیول بنانے کے لیے کچھ تجاویز ہیں:

ڈیوائس کے I / O طریقہ کار سے توقع کی جاتی ہے کہ وہ مواصلاتی پیرامیٹرز کو خود سنبھالے ، بشمول لائن سپیڈ ، برابری چیک ، اور فلو کنٹرول۔ خاص طور پر ، کرمیت برابری پر توجہ نہیں دیتی ، لیکن اسے اب بھی یہ کہنے کی ضرورت ہے۔ یہ مین () سیٹنگ میں کیا جاتا ہے۔ اگر ضروری ہو تو ، آپ کے readpkt () اور ttx_data () پروگرام تقسیم ہونے چاہئیں اور اگر ضرورت ہو تو برابری کو شامل کریں۔ سیریل کنکشن کے ساتھ ، شاید اس کے لیے UART پروگرام کیا جا سکتا ہے۔

EK 1.1 اور 1.2 کے درمیان API میں تبدیلی  : کال معاہدوں (فنکشن آرگمنٹ لسٹس اور ریٹرن ویلیوز) کو ورژن 1.1 اور 1.2 کے درمیان تبدیل کیا گیا ، بنیادی طور پر ہر k ڈھانچے کو ترتیب میں رسائی فراہم کرنے اور کالنگ پارٹی کو بہتر رائے دینے کے لیے۔ ہر معاملے میں جہاں تبدیلی کی گئی ہے ، پرانے اور نئے دونوں فارمیٹ کی نشاندہی کی گئی ہے۔

آلہ I / O افعال:

int

ڈیوپن (چار * ڈیوائس)

یہ مواصلاتی آلہ کھولتا ہے۔ یہ ایک نیٹ ورک ہوسٹ بھی ہو سکتا ہے۔ غلطی پر 0 ، کامیاب عملدرآمد پر 1 لوٹاتا ہے۔

int

ڈیو سیٹنگ (چار * ترتیبات)

ڈیوائس کے لیے تمام ضروری ترتیبات انجام دیتا ہے جیسے سیریل ڈیوائس کے لیے سپیڈ اور فلو کنٹرول۔ متعلقہ پیرامیٹرز کیا ہیں یہ جاننے کا کوئی طریقہ نہیں ہے ، یہ طریقہ کار صرف ایک تار کو قبول کرتا ہے جو کسی بھی شکل میں ہو سکتا ہے ، جیسے “9600؛ 8N1 “یا” رفتار = 57600 flow = rts / cts ” the devsettings طریقہ کار کو سٹرنگ کو پارس کرنا پڑے گا۔ غلطی پر 0 لوٹتا ہے ، کامیاب عملدرآمد پر 1۔

int

ڈیور سٹور (خالی)

اگر ضروری ہو تو ، آلہ کو واپس کریں جب آپ اس کی ترقیاتی ترتیبات () دیکھیں۔ بند کرنے سے پہلے

int

devclose (خالی)

مواصلاتی آلہ بند کرتا ہے۔

int

readpkt (UCHAR * بفر ، k_data * k ڈھانچہ)  (1.1)

readpkt (struct k_data * k ، UCHAR * بفر ، int لمبائی)  (1.2)

اس طریقہ کار کو بالکل وہی کرنا چاہئے جو مثال کرتا ہے: پیکٹ کا آغاز تلاش کریں ، پھر پیکٹ کے آخر میں تمام (چھوڑ کر) حروف کو پیکٹ بفر میں کاپی کریں جس کا پتہ مخصوص ہے۔ آپ کو اپنے اختیار میں موجود تمام تدبیروں کا استعمال کرتے ہوئے اسے زیادہ سے زیادہ مؤثر طریقے سے مرتب کرنا پڑے گا۔ اگر آپ چاہتے ہیں کہ آپ کا کرمٹ پروگرام ختم ہو جائے تو آپ کو کوڈ یہاں درج کرنا ہوگا۔ نوٹ. وقت ختم ہونے کی ضرورت نہیں ہے ، کیونکہ پارٹنر ek Kermit باہر نہیں نکل پائے گا اس کا امکان تقریبا 0. 0. ہے۔

F_CTRLC فنکشن کو نوٹ کریں۔ یہ بطور ڈیفالٹ فعال ہے۔ یہ ای کے کو مسلسل تین Ctrl-C ڈیٹا سٹریم بھیج کر بیچ موڈ سے باہر نکلنے کی اجازت دیتا ہے۔ عام طور پر اسے غیر فعال کرنا ضروری نہیں ہے ، یہاں تک کہ اگر بھیجنے والا “بغیر کسی سابقہ ​​کے” Ctrl-C ، ان میں سے تین عام طور پر ایک تکرار ترتیب میں کمپریسڈ ہوں گے۔

int

tx_data (UCHAR * data، int length، short parity) (1.1)

tx_data (struct k_data * k، UCHAR * data، int length) (1.2)

ایک بار پھر مساوات پر عمل کرنا ضروری ہے (اگر یہ خود بخود مواصلاتی آلہ یا ڈرائیور کے ذریعہ نہیں کیا جاتا ہے)۔ یہ طریقہ کار مؤثر اور قابل اعتماد ہونا چاہیے۔ اسے ڈیٹا کی پوری قطار کو پاس کرنا ہوگا ، ورنہ یہ کریش ہوجاتا ہے۔ unixio.c دیکھیں ، جس سے میرا مطلب ہے “مضبوط”۔ EK 1.2 اور بعد میں ، برابری کا تصفیہ k ڈھانچے سے اٹھایا گیا ہے۔

فائل I / O کے افعال درج ذیل ہیں: ان کا استعمال کچھ بھی پڑھنے یا لکھنے کے لیے کیا جا سکتا ہے – نہ صرف فائلیں: میموری ، ٹیپ ، کارڈ ، لیزر بیم ، انسٹرومنٹ کنٹرولرز ، کچھ بھی۔ اس سے کوئی فرق نہیں پڑتا ہے کہ آپ ان طریقہ کار کو کس طرح کہتے ہیں ، لیکن دلیل کی فہرست اور واپسی کی قسم جیسا کہ بیان کیا گیا ہے۔ اس کے علاوہ ، اگر آپ انہیں مختلف نام دیتے ہیں تو ، آپ کو kermit.h میں پروٹوٹائپ تبدیل کرنا پڑے گا۔

int

اوپن فائل (UCHAR * فائل کا نام ، انٹ موڈ ، ڈھانچہ k_date * k)  (1.1)

اوپن فائل (ڈھانچہ k_date * k ، UCHAR * فائل کا نام ، انٹ موڈ)  (1.2)

نام کی فائل کو مخصوص وضع میں کھولتا ہے (1 = پڑھنا ، 2 = لکھنا ، 3 = شامل کرنا)۔ کامیابی پر X_OK ، ناکامی پر X_ERROR لوٹاتا ہے۔

الانگ

fileinfo (UCHAR * filename، UCHAR * buf، int buflen، short * type، short mode)  (1.1)

fileinfo (struct k_data * k، UCHAR * filename، UCHAR * buf، int buflen، short * type، short mode)  (1.2)

مخصوص مقامی فائل کے بارے میں معلومات حاصل کرتا ہے: سائز ، تاریخ اور ، اگر موڈ == 0 ، فائل کی قسم (متن یا بائنری)۔ buf اور buflen فائل کی ٹائم اسٹیمپ لائن پر لاگو ہوتے ہیں۔ X_OK یا X_ERROR لوٹاتا ہے۔

int

ریڈ فائل (ڈھانچہ k_data *)

ان پٹ فائل سے بفر پڑھتا ہے اور ، جب ٹیکسٹ موڈ میں منتقل ہوتا ہے ، تحریری شکل کو معیاری CRLF Cermit Stream میں بدل دیتا ہے۔ X_OK یا X_ERROR لوٹاتا ہے۔

int

رائٹ فائل (ڈھانچہ k_data * ، CHAR * بفر ، int لمبائی)

آؤٹ پٹ فائل میں بفر لکھتا ہے اور ، جب ٹیکسٹ موڈ میں منتقل ہوتا ہے ، کرمٹ اسٹریم کے معیاری CRLF رائٹنگ فارمیٹ کو مقامی طور پر ضرورت کے مطابق تبدیل کرتا ہے۔ X_OK یا X_ERROR لوٹاتا ہے۔

int

closefile (struct k_data *، UCHAR کوڈ ، int موڈ)

فائل بند کرتا ہے۔ آؤٹ پٹ فائلوں کے لیے ، ظاہر ہے ، یہ فائل کو بند کرنے سے پہلے زیر التوا بفرز کو ری سیٹ کرتا ہے۔ پھر چیک کریں کہ کیا کرمٹ ٹرانسفر فائل کی منتقلی کو اس کی تکمیل سے پہلے منسوخ کر دیتا ہے موڈ اس بات کی نشاندہی کرتا ہے کہ یہ ان پٹ ہے یا آؤٹ پٹ فائل ، لہذا اگر ضروری ہو تو نامکمل فائلیں حذف کی جا سکتی ہیں۔ X_OK یا X_ERROR لوٹاتا ہے۔

عین مطابق کالنگ راگیں unixio.c فائل میں دکھائی گئی ہیں۔

ڈیبٹ

اگر EK بغیر NODEBUG تعریف کے بنایا گیا تھا ، اگر آپ کمانڈ لائن پر -d آپشن کو فعال کرتے ہیں تو EK کا یونکس پر مبنی ایپلیکیشن ورژن موجودہ ڈائریکٹری میں debug.log فائل بناتا ہے۔ پروڈکشن ورژن میں ڈیبگ کوڈ کو خارج کرنے کے لیے آپ کو -DNODEBUG کو CFLAGS C کمپائلر میں شامل کرنے کی ضرورت ہے۔ اوپر دکھائے گئے طول و عرض میں ڈیبگنگ شامل ہے۔ آپ ڈیبگ فنکشن کو اپنے پلیٹ فارم I / O ماڈیول میں کسی بھی طرح نافذ کرسکتے ہیں۔

ریلیز کی تاریخ

ورژن تاریختفصیل
1.1۔2002/10/07۔   ابتدائی مسئلہ۔ VxWorks ورژن اب بھی اس سطح پر ہے۔
1.228/01/2003۔بہتر API ، پورٹ جاوا (جو ابھی تک اس سطح پر ہے)۔
1.3۔2004/03/04۔ہائپر ٹرمینل کا استعمال کرتے ہوئے فائل کی درست منتقلی۔
1.4۔20/03/2004۔خالی فائلیں وصول کرنا درست کریں۔
1.52004/04/10۔ایک پیکٹ سے مسئلہ حل کریں ، انتہائی چھوٹی ترتیبات اور / یا صرف وصول کرنے کی اجازت دیں۔
1.51۔23/09/2004۔فلپس XAG30 ( جان ڈنلاپ  ) کے لیے موافقت 
EKSW 0.94۔2010/06/24۔سلیکٹنگ ری ٹرانسمیشن کے ساتھ سلائڈنگ شیشے پیش کریں (جان ڈونلپ)
1.6۔30/03/2011بی ایس ڈی لائسنس کےتحت جاری اور جاری کیا  گیا  جو  3 شقوں میں تبدیل ہوا  ۔
1.7۔06/06/2011۔FORCE-3 06/06/2011 پروٹوکول C-Kermit 9.0 کے ساتھ مل کر کام کرتا ہے   ( یہاںوضاحت کی گئی  ہے  )

ڈاؤن لوڈ کریں

E-Kermit کے کئی نفاذ ڈاؤنلوڈ کے لیے دستیاب ہیں۔ E-Kermit خود ، ورژن 1.7 ، بنیادی ہے۔ دوسرے – مختلف پلیٹ فارمز یا زبانوں کے لیے موافقت جو کہ ای کرمٹ کے پچھلے ورژن کے دوران کی گئی تھیں ، جیسا کہ پچھلے سیکشن میں دکھایا گیا ہے۔ دوسرے الفاظ میں ، E-Kermit 1.3 ، 1.4 اور 1.5 میں پائے جانے والے اصلاحات VxWorks یا جاوا ورژن میں نہیں ہیں اور VxWorks ورژن بہتر 1.2 ورژن کی بجائے E-Kermit 1.1 API استعمال کرتا ہے۔ EKSW میں کچھ API تبدیلیاں اور دیگر تضادات ہیں جنہیں EK 1.6 کے ساتھ مربوط ہونے سے پہلے ختم کرنا چاہیے ، لیکن یہ خود ہی کافی مفید ہے۔ درحقیقت ، یہ ایک ایسا ورژن ہے جو اپیکس- EM سمندری تیروں کی نئی نسل میں کام کرتا ہے۔  ، اور کرمٹ پروٹوکول کے کسی بھی دوسرے نفاذ کے مقابلے میں زیادہ منفی حالات میں زیادہ اچھی طرح سے تجربہ کیا گیا ہے۔ ورژن 1.7 پر واپس جائیں ، جو نئے فورس -3پیکٹ کی توثیق کے پروٹوکول کو نافذکرتا ہے   ۔ (EKSW کو یہ بھی کسی وقت مل جائے گا۔)

HTTPایف ٹی پی
پہلا نامتفصیلٹار  *زپماخذ فائلیں۔
ای کرمٹ 1.7۔یونیکس ڈیمو کے ساتھ ، تمام پلیٹ فارمز پر پورٹیبل۔ڈاؤن لوڈ کریںڈاؤن لوڈ کریںڈاؤن لوڈ کریں
EKSW 0.94۔لینکس کے مطابق ڈھالنے والی حقیقی سلائڈنگ ونڈوز کے ساتھ ای کرمٹ۔ڈاؤن لوڈ کریںڈاؤن لوڈ کریںڈاؤن لوڈ کریں
EKVX 1.1 E-Kermit 1.1 کو VxWorks کے مطابق ڈھال لیا گیا ہے۔ڈاؤن لوڈ کریںڈاؤن لوڈ کریںڈاؤن لوڈ کریں
جاواای کرمٹ 1.2 کو جاوا میں تبدیل کر دیا گیا ہے۔ڈاؤن لوڈ کریںڈاؤن لوڈ کریںڈاؤن لوڈ کریں
سمیرد۔تناؤ ٹیسٹر پروٹوکول [  تفصیل  ]ڈاؤن لوڈ کریںڈاؤن لوڈ کریںڈاؤن لوڈ کریں

* غیر کمپریسڈ ، ضرورت نہیں ، وہ بہت چھوٹے ہیں۔