এমকিফাইফোর মতো কোনও কমান্ড রয়েছে তবে ডোমেন সকেটের জন্য?
এমকিফাইফোর মতো কোনও কমান্ড রয়েছে তবে ডোমেন সকেটের জন্য?
উত্তর:
সকেটের জন্য mkfifo এর সঠিক কোনও সমতুল্য নেই, অর্থাত্ কোনও "হ্যাঙ্গিং" সকেট তৈরি করে এমন কোনও আদেশ নেই। এটি historicalতিহাসিক কারণে: সার্ভারের ফাংশন বাইন্ড (), ফাইল সিস্টেমে সকেটের নাম / ইনোড তৈরি করে, নামটি ইতিমধ্যে ব্যবহার করা থাকলে ব্যর্থ হয়। অন্য কথায়, সার্ভার একটি প্রাক বিদ্যমান সকেটে কাজ করতে পারে না।
সুতরাং আপনি যদি আগে সকেট তৈরি করে থাকেন তবে এটি প্রথমে সার্ভারের দ্বারা সরানো দরকার। কোনো লাভ নেই. গ্রেগরির উত্তরের সাথে আপনি যেমন দেখতে পাচ্ছেন, আপনি যদি নেটকাট এর মতো কোনও সার্ভার রাখেন তবে আপনি সকেট তৈরি করতে পারেন at একবার সার্ভার চলে গেলে পুরানো সকেট চলে যায়। একটি নতুন সার্ভারে একটি নতুন সকেট রয়েছে এবং সকেটের নামটি সাদৃশ্য থাকা সত্ত্বেও সমস্ত ক্লায়েন্টকে পুনরায় সংযোগ করতে হবে।
সর্বাধিক সাম্প্রতিক নেটক্যাট (এনসি) এবং অনুরূপ প্রোগ্রামগুলি (আমি জানি যতদূর সোকাটে) ডোমেন সকেটের বিকল্প রয়েছে।
অন্যথায়, আপনি ucspi-unix এ দেখতে পারেন
# sudo apt-get install netcat-openbsd
আপনি পাইথন ব্যবহার করতে পারেন:
python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('/tmp/test.sock')"
এছাড়াও সি, এই উত্তর দেখুন ।
mksock() { SOCK="$1" python -c "import os, socket as s; s.socket(s.AF_UNIX).bind(os.environ['SOCK'])"; }
সহজ শেল ব্যবহারের জন্য: mksock /tmp/test.sock
আমি কেবল netcat
এ জাতীয় ক্ষেত্রে ব্যবহার এবং শুনতে থাকি :
nc -lkU aSocket.sock
আপনার নেটক্যাট-ওপেনবিএসডি ব্যবহার করা উচিত । netcat-ঐতিহ্যগত নেই -U
সুইচ যা ইউনিক্স ডোমেন সকেট জন্য।
nc
বিএসডি-তে +1