Network Remote VB.Net

Imports System
Imports System.Net
Imports System.IO
Imports System.Text
Imports System.Threading
Imports Microsoft.VisualBasic
Public Class RequestState
    Public request As WebRequest
    Public Sub New()
        request = Nothing
    End Sub ' New
End Class ' RequestState
Class WebRequest_BeginGetRequeststream
    Public Shared allDone As New ManualResetEvent(False)
    Shared Sub Main()
            Dim myWebRequest As WebRequest = WebRequest.Create("http://www.domain.com/")
            Dim myRequestState As New RequestState()
            myRequestState.request = myWebRequest
            myWebRequest.ContentType = "application/x-www-form-urlencoded"
            myRequestState.request.Method = "POST"
            Dim r As IAsyncResult = CType(myWebRequest.BeginGetRequestStream(AddressOf ReadCallback, myRequestState), IAsyncResult)
            allDone.WaitOne()
            Dim myWebResponse As WebResponse = myWebRequest.GetResponse()
            Dim streamResponse As Stream = myWebResponse.GetResponseStream()
            Dim streamRead As New StreamReader(streamResponse)
            Dim readBuff(256) As [Char]
            Dim count As Integer = streamRead.Read(readBuff, 0, 256)
            While count > 0
                Dim outputData As New [String](readBuff, 0, count)
                Console.WriteLine(outputData)
                count = streamRead.Read(readBuff, 0, 256)
            End While
            streamResponse.Close()
            streamRead.Close()
             myWebResponse.Close()
    End Sub 
    Private Shared Sub ReadCallback(asynchronousResult As IAsyncResult)
            Dim myRequestState As RequestState = CType(asynchronousResult.AsyncState, RequestState)
            Dim myWebRequest As WebRequest = myRequestState.request
            Dim streamResponse As Stream = myWebRequest.EndGetRequestStream(asynchronousResult)
            Dim postData As String = Console.ReadLine()
            Dim encoder As New ASCIIEncoding()
            Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
            streamResponse.Write(byteArray, 0, postData.Length)
            streamResponse.Close()
            allDone.Set()
    End Sub 
End Class