Tcplistener class

HeroKing

Member
Joined
Sep 7, 2009
Messages
5
Programming Experience
10+
A SIMPLE TCP LISTENER

this is a simple class you may want to integrate to your application to provide network communications abilities



Imports System.Threading
Imports System.Net.Sockets
Imports System.IO
Imports System.Net
Imports System.Net.Dns

Public Class Server
Implements IDisposable
Public Status As String = Nothing
Public _Port As Integer = 5150
Private CurrentSocket As System.Net.Sockets.Socket
Private _AcceptedClient As Boolean = False
Public AcceptedConnectionFrom As String = Nothing
Private disposedValue As Boolean = False ' To detect redundant calls
Private _MessageFromClient As String = Nothing

Friend ReadOnly Property MessageFromClient() As String
Get
Return _MessageFromClient
End Get
End Property
' IDisposable
Protected Overridable Sub Dispose(ByVal disposing As Boolean)
If Not Me.disposedValue Then
If disposing Then
' TODO: free other state (managed objects).
End If

' TODO: free your own state (unmanaged objects).
' TODO: set large fields to null.
End If
Me.disposedValue = True
End Sub

#Region " IDisposable Support "
' This code added by Visual Basic to correctly implement the disposable pattern.
Public Sub Dispose() Implements IDisposable.Dispose
' Do not change this code. Put cleanup code in Dispose(ByVal disposing As Boolean) above.
Dispose(True)
GC.SuppressFinalize(Me)
End Sub
#End Region
Public ReadOnly Property SocketAddressFamily() As System.Net.Sockets.AddressFamily
Get
Return CurrentSocket.AddressFamily
End Get
End Property

Public Property Port() As Integer
Get
Return _Port
End Get
Set(ByVal value As Integer)
value = _Port
End Set
End Property

Public Overridable Sub CreateServer()

Dim ServerSocket As System.Net.Sockets.Socket
ServerSocket = New System.Net.Sockets.Socket(Net.Sockets.AddressFamily.InterNetwork, Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.Tcp)
CurrentSocket = ServerSocket
Dim LocalEndPoint As New System.Net.IPEndPoint(System.Net.IPAddress.Any, _Port)
Try
ServerSocket.Bind(LocalEndPoint)
ServerSocket.Listen(Integer.MaxValue)
Trace.WriteLine("Server Started")
Status = "Server Started"
While True
Try
Dim ClientSocket As Socket = ServerSocket.Accept
Trace.WriteLine("Connected to Client[Accepted Connection Request from client]")
Status = "Connected to Client[Accepted Connection Request from client]"
Dim AcceptedClient As Boolean
Dim _AcceptedConnectionFrom As String = ClientSocket.RemoteEndPoint.ToString
AcceptedConnectionFrom = _AcceptedConnectionFrom
AcceptedClient = True
AcceptedClient = _AcceptedClient

Dim Reader As StreamReader
Dim Writer As StreamWriter
Try
'''''''''''''
Dim NetWorkstream As New NetworkStream(ClientSocket)
Reader = New StreamReader(NetWorkstream)
Dim MessageFromClient As String = Reader.ReadToEnd
MessageFromClient = _MessageFromClient
Status = "Server Received Message"
''''''''''''''''''''''''''''''''''''''''''''''''
Dim MessageFromServer As String = Nothing

Dim ServerHostName As String
ServerHostName = Dns.GetHostName

Dim IPhostEntry As New IPHostEntry
IPhostEntry = Dns.GetHostByName(ServerHostName)
Dim IPaddresses() As Net.IPAddress
IPaddresses = IPhostEntry.AddressList
For i = 0 To IPaddresses.GetUpperBound(0)
MessageFromServer = IPaddresses(i).ToString
Next

''''''''''''''''''''''''''''''''''''''''''''''''
Writer = New StreamWriter(NetWorkstream)
Writer.WriteLine("Server : Nothing \\ ; = Connected \\")
Writer.WriteLine("Gathering Info")
Writer.WriteLine(ServerHostName)
Writer.WriteLine(MessageFromServer)
Writer.WriteLine(MessageFromServer)
Writer.Flush()

Trace.WriteLine("Message From Server Sent")
Status = "Message Sent From Server"
'''''''''''''
Catch ex As Exception
Trace.WriteLine("Message Exchange Failed")
Status = "Message Exchange Failed"
Finally

If Not (Reader Is Nothing) Then
Reader.Close()
End If
If Not (Writer Is Nothing) Then
Writer.Close()
End If
End Try
Catch ex As Exception
Trace.WriteLine("Server Started But Cannot Connect to Client")
Status = "Server Started But Cannot Connect to Client"
End Try
End While
Catch ex As Exception
Trace.WriteLine("Server Cannot Be Started")
Status = "Server Cannot Be Started"
Finally

If Not (ServerSocket Is Nothing) Then
ServerSocket.Close()
End If
End Try

End Sub

End Class
;););););););););););););):D:D:D:D:D:D:D:D
 
Back
Top