Socket Programming হল একটি কমিউনিকেশন প্রক্রিয়া যেখানে দুটি কম্পিউটার একটি নেটওয়ার্কে সংযুক্ত হয়ে ডেটা একে অপরকে পাঠায় এবং গ্রহণ করে। VB.Net-এ TCP/IP এবং UDP সোকেট প্রোগ্রামিং ব্যবহৃত হয় নেটওয়ার্ক কমিউনিকেশন অ্যাপ্লিকেশন তৈরি করার জন্য।
TCP Socket ব্যবহার করে দুইটি প্রোগ্রাম, যেমন ক্লায়েন্ট এবং সার্ভার, একে অপরের সাথে সংযোগ স্থাপন করে এবং ডেটা পাঠায় ও গ্রহণ করে।
TCP ক্লায়েন্ট একটি TCP সোকেটের মাধ্যমে সার্ভারের সাথে সংযোগ স্থাপন করে এবং সার্ভার থেকে ডেটা পাঠাতে বা গ্রহণ করতে পারে।
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Module TCPClient
Sub Main()
' সার্ভারের আইপি অ্যাড্রেস এবং পোর্ট নির্ধারণ
Dim ipAddress As String = "127.0.0.1"
Dim port As Integer = 12345
' TCP সোকেট তৈরি
Dim clientSocket As New TcpClient(ipAddress, port)
' নেটওয়ার্ক স্ট্রিম তৈরি
Dim stream As NetworkStream = clientSocket.GetStream()
' পাঠানোর জন্য ডেটা
Dim message As String = "Hello from TCP Client!"
Dim data As Byte() = Encoding.ASCII.GetBytes(message)
' সার্ভারে ডেটা পাঠানো
stream.Write(data, 0, data.Length)
Console.WriteLine("Message sent to server: " & message)
' সার্ভার থেকে প্রাপ্ত ডেটা পড়া
data = New Byte(256) {}
Dim bytes As Int32 = stream.Read(data, 0, data.Length)
Console.WriteLine("Received from server: " & Encoding.ASCII.GetString(data, 0, bytes))
' সংযোগ বন্ধ করা
clientSocket.Close()
End Sub
End Module
ব্যাখ্যা:
TCP সার্ভারটি ক্লায়েন্টের সংযোগ গ্রহণ করে এবং তাদের থেকে ডেটা গ্রহণ ও পাঠাতে পারে।
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Module TCPServer
Sub Main()
' সার্ভারের আইপি অ্যাড্রেস এবং পোর্ট নির্ধারণ
Dim ipAddress As String = "127.0.0.1"
Dim port As Integer = 12345
' সার্ভার সোকেট তৈরি
Dim listener As New TcpListener(IPAddress.Parse(ipAddress), port)
' সার্ভার স্টার্ট করা
listener.Start()
Console.WriteLine("Waiting for connection...")
' ক্লায়েন্টের সংযোগ গ্রহণ
Dim clientSocket As TcpClient = listener.AcceptTcpClient()
Console.WriteLine("Client connected!")
' নেটওয়ার্ক স্ট্রিম গ্রহণ
Dim stream As NetworkStream = clientSocket.GetStream()
' ক্লায়েন্ট থেকে প্রাপ্ত ডেটা পড়া
Dim data As Byte() = New Byte(256) {}
Dim bytes As Int32 = stream.Read(data, 0, data.Length)
Console.WriteLine("Received from client: " & Encoding.ASCII.GetString(data, 0, bytes))
' ক্লায়েন্টকে উত্তর পাঠানো
Dim response As String = "Hello from TCP Server!"
data = Encoding.ASCII.GetBytes(response)
stream.Write(data, 0, data.Length)
' সংযোগ বন্ধ করা
clientSocket.Close()
listener.Stop()
End Sub
End Module
ব্যাখ্যা:
UDP হল কানেকশনলেস প্রোটোকল, যার মধ্যে কোন সংযোগ প্রতিষ্ঠিত হয় না এবং ডেটা দ্রুত পাঠানো যায় কিন্তু কিছু ডেটা হারাতে পারে। এটি সাধারনত লাইভ স্ট্রিমিং বা দ্রুত ডেটা পাঠানোর জন্য ব্যবহৃত হয়।
UDP ক্লায়েন্ট একটি UDP সোকেট তৈরি করে এবং সার্ভারে ডেটা পাঠায়।
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Module UDPClient
Sub Main()
' সার্ভারের আইপি অ্যাড্রেস এবং পোর্ট নির্ধারণ
Dim ipAddress As String = "127.0.0.1"
Dim port As Integer = 12345
' UDP সোকেট তৈরি
Dim udpClient As New UdpClient()
' পাঠানোর জন্য ডেটা
Dim message As String = "Hello from UDP Client!"
Dim data As Byte() = Encoding.ASCII.GetBytes(message)
' সার্ভারে ডেটা পাঠানো
udpClient.Send(data, data.Length, ipAddress, port)
Console.WriteLine("Message sent to server: " & message)
udpClient.Close()
End Sub
End Module
ব্যাখ্যা:
UDP সার্ভারটি ক্লায়েন্ট থেকে প্রাপ্ত ডেটা গ্রহণ করে এবং প্রাসঙ্গিক উত্তর পাঠায়।
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Module UDPServer
Sub Main()
' সার্ভারের আইপি অ্যাড্রেস এবং পোর্ট নির্ধারণ
Dim ipAddress As String = "127.0.0.1"
Dim port As Integer = 12345
' UDP সোকেট তৈরি
Dim udpListener As New UdpClient(port)
' ক্লায়েন্ট থেকে ডেটা গ্রহণ
Dim endPoint As New IPEndPoint(IPAddress.Any, port)
Dim data As Byte() = udpListener.Receive(ref endPoint)
Console.WriteLine("Received from client: " & Encoding.ASCII.GetString(data))
' ক্লায়েন্টকে উত্তর পাঠানো
Dim response As String = "Hello from UDP Server!"
data = Encoding.ASCII.GetBytes(response)
udpListener.Send(data, data.Length, endPoint)
udpListener.Close()
End Sub
End Module
ব্যাখ্যা:
বৈশিষ্ট্য | TCP (Transmission Control Protocol) | UDP (User Datagram Protocol) |
---|---|---|
কানেকশন | কানেকশন-অরিয়েন্টেড (সংযোগ স্থাপন করতে হয়) | কানেকশনলেস (কোন সংযোগ স্থাপন করতে হয় না) |
ডেটা নিশ্চিতকরণ | ডেটার সঠিকতা এবং পূর্ণতা নিশ্চিত করা হয় | ডেটার সঠিকতা নিশ্চিত করা হয় না (নির্ভরযোগ্য নয়) |
গতি | ধীর (নির্ভরযোগ্য) | দ্রুত (নির্ভরযোগ্য নয়) |
ব্যবহার | ফাইল ট্রান্সফার, ইমেইল, ওয়েব ব্রাউজিং ইত্যাদি | লাইভ স্ট্রিমিং, গেমিং, DNS (Domain Name System) |
ফলাফল | কোন ডেটা হারায় না | কিছু ডেটা হারাতে পারে |
র্ণতা নিশ্চিত করে না। এটি সাধারণত গেমিং, লাইভ স্ট্রিমিং বা DNS-এর মতো অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয়।
TCP/IP এবং UDP সোকেট প্রোগ্রামিং ব্যবহার করে আপনি নেটওয়ার্ক কমিউনিকেশন অ্যাপ্লিকেশন তৈরি করতে পারেন, যেখানে TCP বেশি নির্ভরযোগ্য এবং UDP দ্রুত ট্রান্সমিশন প্রদান করে।
Read more