জাভাতে সকেট প্রোগ্রামিং সম্পর্কে সমস্ত জানুন



জাভা সকেট প্রোগ্রামিং বিভিন্ন জেআরইতে চলমান অ্যাপ্লিকেশনগুলির মধ্যে যোগাযোগের জন্য ব্যবহৃত হয়। জাভা সকেট প্রোগ্রামিং সংযোগ-ভিত্তিক বা সংযোগহীন হতে পারে।

সকেট প্রোগ্রামিং ইন বিভিন্ন চলমান অ্যাপ্লিকেশনগুলির মধ্যে যোগাযোগের জন্য ব্যবহৃত হয় । এটি হয় সংযোগ কেন্দ্রিক বা সংযোগহীন হতে পারে। মোট কথা, একটি সকেট ক্লায়েন্ট এবং সার্ভারের মধ্যে সংযোগ স্থাপনের একটি উপায়। এই নিবন্ধে, আমি আপনাকে সকেট প্রোগ্রামিং সম্পর্কে সমস্ত বলব।

নীচে বিষয়গুলি এই নিবন্ধে আচ্ছাদিত রয়েছে:





জাভাতে সকেট প্রোগ্রামিং কী?

সকেট প্রোগ্রামিং একে অপরের সাথে যোগাযোগ করার জন্য একটি নেটওয়ার্কে দুটি নোড সংযোগ করার একটি উপায়। এক সকেট (নোড) একটি আইপি-তে নির্দিষ্ট পোর্টে শোনেন, অন্যদিকে সকেট সংযোগ গঠনের জন্য অন্যটির কাছে পৌঁছায়।

এইচটিএমএল জাভাস্ক্রিপ্ট ব্যবহার করে অগ্রগতি বার

ক্লায়েন্ট সার্ভার যোগাযোগ - জাভাতে সকেট প্রোগ্রামিং - এডুরেকা



সার্ভারটি শ্রোতাদের গঠন করে সকেট যখন ক্লায়েন্ট সার্ভারে পৌঁছেছে। সকেট এবং সার্ভার সকেট সংযোগ-ভিত্তিক সকেট প্রোগ্রামিংয়ের জন্য ব্যবহৃত হয়।

এবার আসুন সকেট প্রোগ্রামিং এর মূল ধারণাটি বোঝা যাক একটি সকেট।

জাভাতে সকেট কী?

প্রতি সকেট ভিতরে নেটওয়ার্কে চলমান দুটি প্রোগ্রামের মধ্যে দ্বি-মুখী যোগাযোগের লিঙ্কের একটি শেষ পয়েন্ট। ক সকেট কোনও পোর্ট নম্বরে আবদ্ধ যাতে টিসিপি স্তরটি সেই অ্যাপ্লিকেশনটি সনাক্ত করতে পারে যা ডেটা প্রেরণ করা যায়।



একটি শেষ পয়েন্ট হ'ল একটি আইপি ঠিকানা এবং একটি পোর্ট সংমিশ্রণ। জাভা প্ল্যাটফর্মের প্যাকেজটি একটি শ্রেণি সরবরাহ করে,সকেটএটি আপনার জাভা প্রোগ্রাম এবং নেটওয়ার্কের অন্য প্রোগ্রামের মধ্যে দ্বি-মুখী সংযোগের একপাশে কার্যকর করে। ক্লাসটি আপনার জাভা প্রোগ্রাম থেকে কোনও নির্দিষ্ট সিস্টেমের বিবরণ গোপন করে একটি প্ল্যাটফর্ম নির্ভর নির্ভরকরণের শীর্ষে বসে। নেটিভ কোডের উপর নির্ভর না করে ক্লাসটি ব্যবহার করে আপনার প্ল্যাটফর্ম-স্বতন্ত্র ফ্যাশনে নেটওয়ার্কের মাধ্যমে যোগাযোগ করতে পারে।

এখন আপনি জানেন যে জাভাতে সকেট কী, আরও এগিয়ে চলুন এবং বুঝতে পারি কীভাবে ক্লায়েন্ট সার্ভারের সাথে যোগাযোগ করে এবং সার্ভার কীভাবে প্রতিক্রিয়া জানায়।

ক্লায়েন্ট সাইড প্রোগ্রামিং

ক্লায়েন্ট-সাইড প্রোগ্রামিংয়ের ক্ষেত্রে ক্লায়েন্ট প্রথমে সার্ভারটি শুরু হওয়ার অপেক্ষায় থাকবে। সার্ভারটি একবার চালু হয়ে গেলে এটি সার্ভারের কাছে অনুরোধগুলি প্রেরণ করবে। এর পরে, ক্লায়েন্টটি সার্ভারের প্রতিক্রিয়াটির জন্য অপেক্ষা করবে। সুতরাং, এটি ক্লায়েন্ট এবং সার্ভার যোগাযোগের সম্পূর্ণ যুক্তি। এখন ক্লায়েন্ট সাইড এবং সার্ভার সাইড প্রোগ্রামিং বিস্তারিতভাবে বুঝতে পারি।

ক্লায়েন্টদের অনুরোধ শুরু করার জন্য আপনাকে নীচের বর্ণিত পদক্ষেপগুলি অনুসরণ করতে হবে:

1. একটি সংযোগ স্থাপন করুন

প্রথম পদক্ষেপটি সকেট সংযোগ স্থাপন করা। একটি সকেট সংযোগ বোঝায় যে দুটি মেশিনের একে অপরের নেটওয়ার্ক অবস্থান (আইপি ঠিকানা) এবং টিসিপি পোর্ট সম্পর্কে তথ্য রয়েছে।

আপনি নীচের বিবৃতিটির সাহায্যে সকেট তৈরি করতে পারেন:

সকেট সকেট = নতুন সকেট ('127.0.0.1', 5000)

  • এখানে, প্রথম যুক্তিটি প্রতিনিধিত্ব করে সার্ভারের আইপি ঠিকানা

  • দ্বিতীয় যুক্তি প্রতিনিধিত্ব করে টিসিপি পোর্ট । (এটি এমন একটি সংখ্যা যা উপস্থাপন করে যে কোনও অ্যাপ্লিকেশনটি কোনও সার্ভারে চলমান উচিত))

2. যোগাযোগ

সকেট সংযোগের মাধ্যমে যোগাযোগের জন্য, স্ট্রিমগুলি ইনপুট এবং ডেটা আউটপুট উভয়ের জন্য ব্যবহৃত হয়। কোনও সংযোগ স্থাপনের পরে এবং অনুরোধগুলি প্রেরণের পরে, আপনাকে সংযোগটি বন্ধ করতে হবে।

৩. সংযোগটি বন্ধ করা হচ্ছে

একবার সার্ভারে বার্তা প্রেরণের পরে সকেট সংযোগ স্পষ্টভাবে বন্ধ হয়ে যায়।

এখন দেখা যাক ক্লায়েন্টের পাশে সকেট সংযোগটি প্রয়োগ করতে জাভা প্রোগ্রাম কীভাবে লিখবেন।

// একটি ক্লায়েন্টসাইড আমদানি জাভা.net এর জন্য একটি জাভা প্রোগ্রাম * * আমদানি জাভা.ও. * পাবলিক ক্লাস ক্লায়েন্ট প্রোগ্রাম {// সকেট আর ইনপুট আউটপুট প্রাইভেট প্রাইভেট সকেট সকেট = নাল প্রাইভেট ডেটা ইনপুটস্ট্রিম ইনপুট = নাল প্রাইভেট ডেটা আউটপ্রেম স্ট্রিম আউট = নাল // কনস্ট্রাক্টর আইপি ঠিকানা এবং পোর্ট পাবলিক ক্লায়েন্ট (স্ট্রিং অ্যাড্রেস, ইনট পোর্ট) স্থাপন করতে {// সংযোগ স্থাপনের চেষ্টা করুন {সকেট = নতুন সকেট (ঠিকানা, পোর্ট) System.out.println ('সংযুক্ত') // টার্মিনাল ইনপুট থেকে ইনপুট নেয় = নতুন ডেটা ইনপুটস্ট্রিম (System.in) // সকেটে আউটপুট প্রেরণ করে = নতুন ডেটাআউটপুটস্ট্রিম (সকেট.সেটআউটপুটস্ট্রিম ())} ক্যাচ (অজানাহস্টএক্সেপশন u) {System.out.println (u)} ক্যাচ (আইওএক্সেপশন i) {System.out .println (i)} // স্ট্রিংটি ইনপুট থেকে বার্তাটি পড়তে হবে স্ট্রিং লাইন = '' // 'ওভার' ইনপুট না হওয়া পর্যন্ত পড়া চালিয়ে যান (! line.equals ('ওভার')) {চেষ্টা করুন {লাইন = ইনপুট.রেডলাইন ( ) out.writeUTF (লাইন)} ক্যাচ (আইওএক্সেপশন i) {System.out.println (i)}} // সংযোগ বন্ধ করে দেখুন {ইনপুট.ক্লোজ () আউটক্লোজ () সকেটক্লোজ ()} ক্যাচ (আইওএক্সেপশন) i ) {System.out.println (i)}} পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং আরগস []) {ক্লায়েন্ট ক্লায়েন্ট = নতুন ক্লায়েন্ট ('127.0.0.1', 5000)}}

এখন আসুন, সার্ভার-সাইড প্রোগ্রামিং বাস্তবায়ন করি এবং তারপরে আউটপুট এ পৌঁছে যাই।

নতুনদের জন্য আমার এসকিএল টিউটোরিয়ালগুলি

সার্ভার সাইড প্রোগ্রামিং

মূলত, সার্ভারটি তার অবজেক্টটি ইনস্ট্যান্ট করবে এবং ক্লায়েন্টের অনুরোধের জন্য অপেক্ষা করবে। ক্লায়েন্টটি অনুরোধটি পাঠানোর পরে, সার্ভারটি প্রতিক্রিয়ার সাথে যোগাযোগ করবে।

সার্ভার-সাইড অ্যাপ্লিকেশন কোড করার জন্য আপনার দুটি সকেট প্রয়োজন এবং সেগুলি নীচে রয়েছে:

  • প্রতি সার্ভারসকেট যা ক্লায়েন্টের অনুরোধগুলির জন্য অপেক্ষা করে (যখন কোনও ক্লায়েন্ট একটি নতুন সকেট তৈরি করে) ()

  • একটি সরল পুরাতন সকেট ক্লায়েন্টের সাথে যোগাযোগের জন্য।

এর পরে, আপনাকে প্রতিক্রিয়াটির সাথে ক্লায়েন্টের সাথে যোগাযোগ করতে হবে।

যোগাযোগ

getOutputstream () পদ্ধতিটি সকেটের মাধ্যমে আউটপুট প্রেরণে ব্যবহৃত হয়।

সংযোগটি বন্ধ করুন

সকেট বন্ধ করার সাথে সাথে সবকিছু শেষ হয়ে গেলে ইনপুট / আউটপুট স্ট্রিমগুলি বন্ধ করে সংযোগটি বন্ধ করা গুরুত্বপূর্ণ।

এখন আসুন দেখুন কীভাবে সার্ভারের পাশে সকেট সংযোগটি প্রয়োগ করতে একটি জাভা প্রোগ্রাম লিখতে হয়।

উদাহরণস্বরূপ ইনফর্মটিকাতে এক্সএমএল রূপান্তর
// সার্ভারসাইড আমদানি জাভা.net এর জন্য একটি জাভা প্রোগ্রাম * পোর্ট পাবলিক সার্ভার (ইনট পোর্ট) {// সার্ভার শুরু করে এবং সংযোগের জন্য অপেক্ষা করছে {সার্ভার = নতুন সার্ভারসকেট (পোর্ট) System.out.println ('সার্ভার শুরু হয়েছে') System.out.println ('ক্লায়েন্টের জন্য অপেক্ষা করছে ..) । / (ক্লায়েন্টের কাছ থেকে 'ওভার' না পাঠানো পর্যন্ত বার্তা পাঠায় (! line.equals ('ওভার')) {চেষ্টা করুন {লাইন = in.readUTF () System.out.println (লাইন)} ক্যাচ (IOException i) {সিস্টেম। out.println (i)}} System.out.println ('সমাপ্তি সংযোগ') // বন্ধ সংযোগ সকেট.ক্লস () in.close ()} ক্যাচ (আইওএক্সেপশন i) {System.out.println (i)}} পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং আরগস []) { সার্ভার সার্ভার = নতুন সার্ভার (5000)}

ক্লায়েন্ট এবং সার্ভার উভয়টি কনফিগার করার পরে, আপনি প্রথমে সার্ভার সাইড প্রোগ্রামটি কার্যকর করতে পারেন। এর পরে, আপনার ক্লায়েন্ট সাইড প্রোগ্রাম চালানো এবং অনুরোধটি প্রেরণ করা দরকার। ক্লায়েন্ট শেষ থেকে অনুরোধ পাঠানোর সাথে সাথে সার্ভারটি প্রতিক্রিয়া জানাবে। নীচে স্ন্যাপশট একই প্রতিনিধিত্ব করে।

1. আপনি যখন সার্ভারের সাইড স্ক্রিপ্টটি চালান, এটি ক্লায়েন্টটি শুরু হওয়ার জন্য অপেক্ষা করবে।

২. পরবর্তী, ক্লায়েন্ট সংযুক্ত হয়ে যাবে এবং একটি স্ট্রিং আকারে অনুরোধটি ইনপুট করে।

৩. ক্লায়েন্ট যখন অনুরোধটি পাঠায়, সার্ভারটি তার প্রতিক্রিয়া জানায়।

জাভাতে আপনাকে এইভাবে সকেট প্রোগ্রাম চালানো দরকার। আপনি এই প্রোগ্রামগুলি একটি টার্মিনাল উইন্ডো বা কমান্ড প্রম্পটেও চালাতে পারেন। তবে, যেহেতু Eclipse এর বৈশিষ্ট্যগুলি সহ বেশ উন্নত, আপনি কেবল কনসোলে দুটি প্রোগ্রামই সম্পাদন করতে পারেন।

এটি জাভাতে সকেট প্রোগ্রামিং সম্পর্কিত নিবন্ধের শেষে নিয়ে আসে। আমি আশা করি আপনার জ্ঞানটিতে আমি কিছুটা আলোকপাত করেছি সকেট প্রোগ্রামিং।

দেখুন এডুরেকা, বিশ্বস্ত জুড়ে 250,000 এরও বেশি সন্তুষ্ট শিক্ষার্থীর নেটওয়ার্ক সহ একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা by আমরা আপনার যাতায়াতের প্রতিটি পদক্ষেপে আপনাকে সহায়তা করতে এখানে এই জাভা সাক্ষাত্কারের প্রশ্নগুলির পাশাপাশি হয়ে উঠার জন্য আমরা একটি পাঠ্যক্রম নিয়ে এসেছি যা জাভা ডেভেলপার হতে চান এমন শিক্ষার্থী এবং পেশাদারদের জন্য তৈরি করা হয়েছে।

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে এই 'জাভাতে সকেট প্রোগ্রামিং' নিবন্ধের মন্তব্য বিভাগে উল্লেখ করুন এবং আমরা যত তাড়াতাড়ি সম্ভব আপনার কাছে ফিরে আসব।