Client-Server ভিত্তিক অ্যাপ্লিকেশন হল এমন একটি অ্যাপ্লিকেশন যেখানে দুটি প্রধান উপাদান থাকে: Client এবং Server। Client হলো ব্যবহারকারী বা ডিভাইস যা সার্ভারের সাথে যোগাযোগ করে এবং পরিষেবা বা তথ্যের অনুরোধ পাঠায়। Server হল সেই সিস্টেম যা ক্লায়েন্টের অনুরোধ গ্রহণ করে এবং উপযুক্ত প্রতিক্রিয়া পাঠায়।
একটি Client-Server ভিত্তিক অ্যাপ্লিকেশন তৈরি করার জন্য আমাদের প্রয়োজন হবে কিছু বিশেষ প্রযুক্তি, যেমন: TCP/IP স্যোকারেটস, RESTful APIs, এবং অন্যান্য যোগাযোগ প্রোটোকল। এখানে আমরা একটি সাধারণ Client-Server অ্যাপ্লিকেশন তৈরি করার জন্য Python ব্যবহার করব, কারণ এটি একটি জনপ্রিয় এবং সহজ ভাষা যা সবার কাছে সহজলভ্য।
আমরা Python এর socket
লাইব্রেরি ব্যবহার করে একটি সাধারণ TCP Server তৈরি করব। এটি ক্লায়েন্টের অনুরোধ গ্রহণ করবে এবং সঠিক প্রতিক্রিয়া পাঠাবে।
import socket
# Server এর ইনস্ট্যান্স তৈরি করা
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Server এর জন্য IP এবং পোর্ট নির্ধারণ করা
host = '127.0.0.1' # Localhost (Client এবং Server একই মেশিনে চলছে)
port = 65432 # পোর্ট নাম্বার
# Server অ্যাড্রেস এবং পোর্টে বেঁধে দেওয়া
server_socket.bind((host, port))
# Client এর সংযোগ গ্রহণ করা
server_socket.listen()
print("Server is listening on {}:{}".format(host, port))
# Client এর সাথে সংযোগ করা
client_socket, client_address = server_socket.accept()
print("Connected by", client_address)
# Client থেকে ডেটা গ্রহণ করা এবং রেসপন্স পাঠানো
data = client_socket.recv(1024)
print("Received data:", data.decode())
# Client কে সাড়া পাঠানো
client_socket.sendall(b"Hello, Client! This is a server response.")
# সংযোগ বন্ধ করা
client_socket.close()
socket.socket(socket.AF_INET, socket.SOCK_STREAM)
দ্বারা একটি TCP স্যোকেট তৈরি করা হয়েছে।bind()
ফাংশন ব্যবহার করে host (IP ঠিকানা) এবং port নম্বর নির্ধারণ করা হয়েছে।listen()
ফাংশন ব্যবহার করে সার্ভারটি ক্লায়েন্টের সংযোগের জন্য অপেক্ষা করছে।accept()
ফাংশন দ্বারা ক্লায়েন্টের সংযোগ গ্রহণ করা হচ্ছে।recv()
দ্বারা ক্লায়েন্ট থেকে ডেটা গ্রহণ এবং sendall()
দ্বারা সার্ভার থেকে ক্লায়েন্টকে সাড়া পাঠানো হচ্ছে।এবার ক্লায়েন্ট সাইড তৈরি করব, যেটি সার্ভারের সাথে যোগাযোগ করবে এবং অনুরোধ পাঠাবে।
import socket
# Server এর IP এবং পোর্ট নির্ধারণ করা
host = '127.0.0.1' # Localhost
port = 65432 # Server পোর্ট নম্বর
# Client এর জন্য স্যোকেট তৈরি করা
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Server এর সাথে সংযোগ স্থাপন করা
client_socket.connect((host, port))
# Server কে অনুরোধ পাঠানো
client_socket.sendall(b"Hello, Server! I am the client.")
# Server থেকে সাড়া গ্রহণ করা
data = client_socket.recv(1024)
print("Received from server:", data.decode())
# সংযোগ বন্ধ করা
client_socket.close()
socket.socket(socket.AF_INET, socket.SOCK_STREAM)
দ্বারা ক্লায়েন্ট সাইডে একটি TCP স্যোকেট তৈরি করা হয়েছে।connect()
ফাংশন ব্যবহার করে ক্লায়েন্ট সার্ভারের সাথে সংযোগ স্থাপন করছে।sendall()
দ্বারা সার্ভারে একটি বার্তা পাঠানো হচ্ছে এবং recv()
দ্বারা সার্ভার থেকে প্রাপ্ত সাড়া গ্রহণ করা হচ্ছে।এই প্রক্রিয়াতে ক্লায়েন্ট সার্ভারের সাথে TCP প্রোটোকল ব্যবহার করে যোগাযোগ করবে। সার্ভারটি একটি নির্দিষ্ট পোর্টে চলমান থাকবে এবং ক্লায়েন্ট সেই পোর্টে সংযোগ করবে।
স্টেপ ১: প্রথমে সার্ভার কোড চালান।
python server.py
স্টেপ ২: তারপর ক্লায়েন্ট কোড চালান।
python client.py
ক্লায়েন্টের পক্ষ থেকে একটি বার্তা পাঠানো হবে, এবং সার্ভার থেকে সাড়া পাঠানো হবে।
এটি ছিল একটি সাধারণ Client-Server ভিত্তিক অ্যাপ্লিকেশন তৈরি করার প্রক্রিয়া। এখানে আমরা Python ব্যবহার করেছি যা সিম্পল এবং শক্তিশালী ভাষা হিসেবে পরিচিত। এ ধরনের অ্যাপ্লিকেশন তৈরি করার মাধ্যমে আপনি সার্ভার এবং ক্লায়েন্টের মধ্যে বিভিন্ন ধরনের তথ্য শেয়ার করতে পারবেন এবং বিভিন্ন বাস্তব সমস্যার সমাধান করতে পারবেন। Socket programming, REST API এবং WebSocket আরও উন্নত পর্যায়ের যোগাযোগ তৈরি করতে সহায়ক হতে পারে।
common.read_more