পাইথনে আপনি পরের সর্বোচ্চ উপলব্ধ বন্দরটিতে এরকম কিছু করে পরিবেশন করতে পারেন:
import SimpleHTTPServer
import SocketServer
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
port = 8000
while True:
try:
httpd = SocketServer.TCPServer(('', port), Handler)
print 'Serving on port', port
httpd.serve_forever()
except SocketServer.socket.error as exc:
if exc.args[0] != 48:
raise
print 'Port', port, 'already in use'
port += 1
else:
break
অন্যান্য ইউটিলিটিগুলির জন্য যদি আপনার একই জিনিসটি করার প্রয়োজন হয় তবে এটি ব্যাশ স্ক্রিপ্ট হিসাবে আরও সুবিধাজনক হতে পারে:
#!/usr/bin/env bash
MIN_PORT=${1:-1025}
MAX_PORT=${2:-65535}
(netstat -atn | awk '{printf "%s\n%s\n", $4, $4}' | grep -oE '[0-9]*$'; seq "$MIN_PORT" "$MAX_PORT") | sort -R | head -n 1
নামের সাথে এটি এক্সিকিউটেবল হিসাবে সেট করুন get-free-port
এবং আপনি এর মতো কিছু করতে পারেন:
someprogram --port=$(get-free-port)
এটি নেটিভ পাইথন পদ্ধতির মতো নির্ভরযোগ্য নয় কারণ বাশ স্ক্রিপ্টটি বন্দরটি ক্যাপচার করে না - আপনার প্রক্রিয়াটি (জাতিগত অবস্থা) করার আগে আরেকটি প্রক্রিয়া পোর্টটি ধরে ফেলতে পারে - তবে 'ইউটিলিটি' ব্যবহার না করে এখনও যথেষ্ট কার্যকর হতে পারে একটি নিজস্ব চেষ্টা করে দেখুন চেষ্টা করুন।
python -m SimpleHTTPServer 8081