'Credits To DeToX <--Thats Me
'Fast Simple Socket System Open Source
'Please Include Credits
'DocketClass
Imports System.Threading, System.Net, System.IO, System.Net.Sockets
Public Class Client
#Region "Declarations"
Dim TcpClient As New TcpClient()
Dim Remote_IP As String = vbNull
Dim Remote_Port As Int32 = vbNull
Public Event RecievedData(ByVal Data As String)
Public Event FailToConnect(ByVal Reason As String)
#End Region
#Region "Main Code"
Sub New(ByVal IP As String, ByVal Port As Int32)
Remote_IP = IP
Remote_Port = Port
End Sub
Sub Connect()
Try
TcpClien*****nnect(Remote_IP, Remote_Port)
TcpClient.GetStream().BeginRead(New Byte() {0}, 0, 0, AddressOf Recieve, Nothing)
Catch ex As Exception
Thread.Sleep(4000)
RaiseEvent FailToConnect("Error Connecting To Host")
Connect()
End Try
End Sub
Sub Recieve(ByVal Ar As IAsyncResult)
Try
Dim Reader As New StreamReader(TcpClient.GetStream())
RaiseEvent RecievedData(Reader.ReadLine())
TcpClient.GetStream().BeginRead(New Byte() {0}, 0, 0, AddressOf Recieve, Nothing)
Catch ex As Exception
Thread.Sleep(4000)
RaiseEvent FailToConnect("Error Reading Data From Host")
Connect()
End Try
End Sub
Sub SendData(ByVal Data As String)
Try
Dim Writer As New StreamWriter(TcpClient.GetStream())
Writer.WriteLine(Data)
Writer.Flush()
Catch ex As Exception
Thread.Sleep(4000)
RaiseEvent FailToConnect("Error Sending Data To Host")
Connect()
End Try
End Sub
#End Region
#Region "Properties"
Private ReadOnly Property BufferSize
Get
Return TcpClient.ReceiveBufferSize()
End Get
End Property
Private ReadOnly Property Connected
Get
Return TcpClien*****nnected
End Get
End Property
Private ReadOnly Property Available
Get
Return TcpClient.Available
End Get
End Property
#End Region
End Class

so is usefull for files and shit