Mega Code Archive

 
Categories / VB.Net Tutorial / Socket Network
 

Date time server based on System Net Sockets Socket

Imports System.Net Imports System.Net.Sockets Imports System.Threading Imports System.Text Public Class DateTimeServer   Public Shared Sub Main()     Dim serverSocket As System.Net.Sockets.Socket     Try       Dim hostname As String = Dns.GetHostName()       Dim serverIP As IPAddress = Dns.Resolve(hostname).AddressList(0)       Dim Port As String = "13"       Dim serverhost As New IPEndPoint(serverIP, Int32.Parse(Port))       serverSocket = New Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp)       serverSocket.Bind(serverhost)       serverSocket.Listen(50)       Console.WriteLine("DateTime server started at: " + serverhost.Address.ToString() + ":" + Port)       Dim lc As New ListenClient(serverSocket)       Dim serverthread As New Thread(New ThreadStart(AddressOf lc.ServerThreadProc))       serverthread.Start()     Catch ex As Exception       Console.WriteLine(ex.StackTrace.ToString())     End Try   End Sub End Class Public Class ListenClient   Private serverSocket As System.Net.Sockets.Socket   Public Sub New(ByVal serverSocket As System.Net.Sockets.Socket)     Me.serverSocket = serverSocket   End Sub   Public Sub ServerThreadProc()     Dim clientSocket As System.Net.Sockets.Socket     Try       While (True)         clientSocket = serverSocket.Accept()         Dim clientInfo As IPEndPoint = CType( _             clientSocket.RemoteEndPoint, _             IPEndPoint)         Dim serverInfo As IPEndPoint = CType( _             serverSocket.LocalEndPoint, _             IPEndPoint)         Console.WriteLine("Client: " + clientInfo.Address.ToString() + ":" + clientInfo.Port.ToString())         Console.WriteLine("Server: " + serverInfo.Address.ToString() + ":" + serverInfo.Port.ToString())         Dim strDate As String = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString()         Dim byteDateLine() As Byte = Encoding.ASCII.GetBytes(strDate.ToCharArray())         clientSocket.Send(byteDateLine, byteDateLine.Length, SocketFlags.None)         Console.WriteLine("To Client: " + clientInfo.Address.ToString() + ":" + clientInfo.Port.ToString() + ": " + strDate)         clientSocket.Shutdown(SocketShutdown.Both)         clientSocket.Close()       End While     Catch ex As Exception       Console.WriteLine(ex.StackTrace.ToString())       If clientSocket.Connected Then         clientSocket.Close()       End If     End Try   End Sub End Class