The Server Socket Program presented is a VB.NET Console-based application that functions as a server, diligently listening for incoming client requests. In this program, we designate Port 8888 as the communication channel for the server socket, which is instantiated as an instance of the TcpListener class in VB.NET. To initiate the server's operation, we invoke its Start() method, which enables it to actively listen for client connections and process incoming requests.
By implementing this server socket program, developers can establish a robust and reliable communication infrastructure, enabling seamless interactions between clients and the server. The choice of a console-based application ensures simplicity and efficiency in handling client requests, making it suitable for various networking scenarios.
The utilization of the TcpListener class in VB.NET provides a comprehensive set of functionalities and methods for managing server sockets. Through the Start() method, the server socket becomes operational, ready to accept incoming connections and respond to client requests effectively.
By assigning Port 8888 as the designated communication channel, developers can ensure a specific and identifiable pathway for client-server communication, allowing for easy identification and routing of network traffic.
Dim serverSocket As New TcpListener(8888)
serverSocket.Start()
In the next step, we implement an infinite loop to ensure continuous communication with the client in our server program. Upon receiving a client request, the server proceeds to read data from the NetworkStream, allowing for the extraction and processing of the transmitted information. Subsequently, the server formulates a response and writes it back to the NetworkStream, completing the communication cycle.
By incorporating an infinite loop in the server program, developers can establish an uninterrupted communication channel, ensuring the server remains active and responsive to incoming client requests. This loop allows for the continual processing of client data and the provision of timely responses, promoting efficient and seamless interaction.
Within the loop, the server program utilizes the NetworkStream to read the data transmitted by the client. This enables the server to extract the pertinent information required for processing and generating an appropriate response. Simultaneously, the server writes the response to the NetworkStream, ensuring the client receives the intended information or instruction.
Create a new VB.NET Console Application Project and put the following source code into project.
Full Source VB.NET
Imports System.Net.Sockets
Imports System.Text
Module Module1
Sub Main()
Dim serverSocket As New TcpListener(8888)
Dim requestCount As Integer
Dim clientSocket As TcpClient
serverSocket.Start()
msg("Server Started")
clientSocket = serverSocket.AcceptTcpClient()
msg("Accept connection from client")
requestCount = 0
While (True)
requestCount = requestCount + 1
Dim networkStream As NetworkStream = _
clientSocket.GetStream()
Dim bytesFrom(10024) As Byte
networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))
Dim dataFromClient As String = _
System.Text.Encoding.ASCII.GetString(bytesFrom)
dataFromClient = _
dataFromClient.Substring(0, dataFromClient.IndexOf("$"))
msg("Data from client - " + dataFromClient)
Dim serverResponse As String = _
"Server response " + Convert.ToString(requestCount)
Dim sendBytes As [Byte]() = _
Encoding.ASCII.GetBytes(serverResponse)
networkStream.Write(sendBytes, 0, sendBytes.Length)
networkStream.Flush()
msg(serverResponse)
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End While
clientSocket.Close()
serverSocket.Stop()
msg("exit")
Console.ReadLine()
End Sub
Sub msg(ByVal mesg As String)
mesg.Trim()
Console.WriteLine(" >> " + mesg)
End Sub
End Module
By using the NetworkStream for data exchange, developers can establish a reliable and efficient communication pathway between the server and the client. This ensures the smooth flow of information, enabling effective collaboration and real-time interactions.
In the subsequent part of this section, we delve into the
Client Socket Program
, which complements the Server Socket Program. It is important to note that when executing these programs, it is crucial to initiate the Server Socket Program first and subsequently launch the Client Socket Program. This sequential order ensures the establishment of a proper client-server communication channel.
By following this recommended execution sequence, the Server Socket Program is initiated, allowing it to actively listen for incoming client requests and respond accordingly. Once the server program is up and running, the Client Socket Program can be launched to establish a connection with the server and engage in data exchange.
To gain a more comprehensive understanding of the implementation details and nuances of socket programming, it is advisable to refer to the dedicated
Socket Programming
Section. This section provides in-depth explanations, tutorials, and additional information related to socket programming concepts and techniques.