bind()
এর মধ্যে "একটি এলোমেলো আইপি উত্পন্ন INADDR_ANY
হয় না "। এটি সকেটটি সমস্ত উপলব্ধ ইন্টারফেসের সাথে আবদ্ধ করে ।
একটি সার্ভারের জন্য, আপনি সাধারণত সমস্ত ইন্টারফেসের সাথে বাঁধতে চান - কেবল "লোকালহোস্ট" নয়।
যদি আপনি নিজের সকেটটিকে কেবল লোকালহোস্টে আবদ্ধ করতে চান তবে বাক্য গঠনটি হবে my_sockaddress.sin_addr.s_addr = inet_addr("127.0.0.1");
, তারপরে কল করুন bind(my_socket, (SOCKADDR *) &my_sockaddr, ...)
।
যেমনটি ঘটে, INADDR_ANY
একটি ধ্রুবক যা "শূন্য" এর সমান হয়:
http://www.castaglia.org/proftpd/doc/devel-guide/src/incolve/inet.h.html
# define INADDR_ANY ((unsigned long int) 0x00000000)
...
# define INADDR_NONE 0xffffffff
...
# define INPORT_ANY 0
...
আপনি যদি এর সাথে ইতিমধ্যে পরিচিত না হন তবে আমি আপনাকে সকেট প্রোগ্রামিংয়ের জন্য বিজের গাইড পরীক্ষা করার জন্য অনুরোধ করছি:
http://beej.us/guide/bgnet/
যেহেতু লোকেরা এখনও এটি পড়ছে, তাই একটি অতিরিক্ত নোট:
মানুষ (7) আইপি :
যখন কোনও প্রক্রিয়া নতুন আগত প্যাকেট বা সংযোগ পেতে চায়, তখন এটি সকেটটিকে বাইন্ড (2) ব্যবহার করে স্থানীয় ইন্টারফেসের ঠিকানায় আবদ্ধ করা উচিত ।
এই ক্ষেত্রে, শুধুমাত্র একটি আইপি সকেট যে কোনও স্থানীয় (ঠিকানা, পোর্ট) জুটির সাথে আবদ্ধ হতে পারে। যখন INADDR_ANY বাইন্ড কলটিতে নির্দিষ্ট করা থাকে, সকেটটি সমস্ত স্থানীয় ইন্টারফেসের সাথে আবদ্ধ থাকবে।
যখন শুনুন (2) আনবাউন্ড সকেটে কল করা হয়, সকেটটি স্বয়ংক্রিয়ভাবে INADDR_ANY এ স্থানীয় ঠিকানা সেট করে একটি এলোমেলো মুক্ত পোর্টে আবদ্ধ হয়।
যখন সংযুক্ত (2) আনবাউন্ড সকেটে কল করা হয়, সকেটটি স্বয়ংক্রিয়ভাবে একটি এলোমেলো মুক্ত পোর্ট বা INADDR_ANY তে স্থানীয় ঠিকানা সেট করে একটি ব্যবহারযোগ্য ভাগ করা বন্দরের সাথে আবদ্ধ হয় ...
বেশ কয়েকটি বিশেষ ঠিকানা রয়েছে: INADDR_LOOPBACK (127.0.0.1) সর্বদা লুপব্যাক ডিভাইসের মাধ্যমে স্থানীয় হোস্টকে বোঝায়; INADDR_ANY (০.০.০.০) অর্থ বাঁধার জন্য কোনও ঠিকানা ...
এছাড়াও:
বাইন্ড () - একটি সকেটে একটি নাম বাঁধুন :
যদি (sin_addr.s_addr) ক্ষেত্রটি নেটিনিট / ইন.কে সংজ্ঞায়িত হিসাবে ধ্রুবক INADDR_ANY তে সেট করা থাকে, কলার অনুরোধ করে যে সকেটটি হোস্টের সমস্ত নেটওয়ার্ক ইন্টারফেসের সাথে আবদ্ধ হতে হবে। পরবর্তীকালে, সমস্ত ইন্টারফেসের (যা সীমাবদ্ধ নামের সাথে মেলে) থেকে ইউডিপি প্যাকেট এবং টিসিপি সংযোগগুলি অ্যাপ্লিকেশনটিতে স্থানান্তরিত হয়। যখন সার্ভার একাধিক নেটওয়ার্কগুলিতে কোনও পরিষেবা সরবরাহ করে তখন এটি গুরুত্বপূর্ণ হয়ে ওঠে। ঠিকানাটি অনির্ধারিত রেখে, সার্ভারটি তার পোর্টের জন্য তৈরি সমস্ত ইউডিপি প্যাকেট এবং টিসিপি সংযোগের অনুরোধ গ্রহণ করতে পারে, অনুরোধটি যে নেটওয়ার্ক ইন্টারফেসে এসেছিল তা নির্বিশেষে।
htonl(INADDR_ANY)
। ডক বলেছেন যে এই ফাংশনটি এলোমেলো আইপি উত্পন্ন করে ... " এটি সঠিক নয়। কোন ডক্স আপনাকে তাই বলে?