[VB.NET] Piccolo aiuto con una variabile Byte ...

di il
1 risposte

[VB.NET] Piccolo aiuto con una variabile Byte ...

Ho tradotto un codice da C# a VB.NET

ho trovato un solo errore, non so come tradurre il rigo:

come si vede nel commento, in C# funziona cosi: '( in C# ) ---> Byte[] RecvBytes = new Byte[2256];


in VB.NET cosi non da errore ma non mi funziona
Dim RecvBytes(2256) As Byte


se faccio cosi mi dice che Byte non ha costruttori....
Dim RecvBytes As Byte New Byte(2256)


Quale e' il metodo giusto ???



PS. di seguito al codice VB.NET ho riportato l'originale commentato in C#



<pre id=code><font face=courier size= id=code>
Imports System
Imports System.Net
Imports System.Net.Sockets
Imports System.Text

Module Module1

Sub Main()

'scelgo l'host
Dim IPHost As IPHostEntry = Dns.Resolve("localhost") 'IPHostEntry(IPHost = Dns.Resolve("localhost"))
Console.WriteLine(IPHost.HostName)

Dim aliases() As String = IPHost.Aliases 'string []aliases = IPHost.Aliases

Dim addr As IPAddress() = IPHost.AddressList 'IPAddress[] addr = IPHost.AddressList
Console.WriteLine(addr(0))

Dim ep As EndPoint = New IPEndPoint(addr(0), 80) 'EndPoint ep = new IPEndPoint(addr[0],80)

Dim sock As Socket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) 'Socket(sock = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))

sock.Connect(ep)
If sock.Connected Then Console.WriteLine("OK")

Dim ASCII As Encoding = Encoding.ASCII 'Encoding = ASCII = Encoding.ASCII


Dim protocol As String = "HTTP/1.0" 'string protocol="HTTP/1.0" ;
Dim br As String = "\r\n" 'string br="\r\n" ;
Dim target As String = "/phpinfo.php" 'string target="/phpinfo.php" ;


Dim req_body As String = "" 'string req_body="" ;
req_body += "&to=5" 'req_body+="&to=5";


Dim headers As String = "POST " + target + " " + protocol + br 'string headers="POST "+target+" "+protocol+br ;
headers += "Content-Type: application/x-www-form-urlencoded" + br 'headers+="Content-Type: application/x-www-form-urlencoded"+br ;
headers += "Content-Length: " + req_body.Length.ToString + br + br 'headers+="Content-Length: "+req_body.Length+br+br ;


Dim ByteGet As Byte() = ASCII.GetBytes(headers + req_body) 'Byte[] ByteGet = ASCII.GetBytes(headers+req_body);

'( in C# ) ---> Byte[] RecvBytes = new Byte[2256];
Dim RecvBytes(2256) As Byte '= New Byte(2256) '### se faccio cosi mi dice che Byte non ha costruttori.... ###

sock.Send(ByteGet, ByteGet.Length, 0) 'sock.Send(ByteGet, ByteGet.Length, 0);
Dim bytes As Int32 = sock.Receive(RecvBytes, 0, RecvBytes.Length, 0) 'Int32 bytes = sock.Receive(RecvBytes,0, RecvBytes.Length, 0);
Dim strRetPage As String = "" 'string strRetPage="";
strRetPage = ASCII.GetString(RecvBytes, 0, RecvBytes.Length) 'strRetPage = ASCII.GetString(RecvBytes, 0,RecvBytes.Length);
Console.WriteLine(strRetPage)


strRetPage = Nothing 'strRetPage = null
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes) 'strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
While bytes > 0
bytes = sock.Receive(RecvBytes, 0, RecvBytes.Length, SocketFlags.Peek)
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes)
Console.WriteLine(strRetPage)
End While
sock.Shutdown(SocketShutdown.Both)
sock.Close()


'STOP codice
Console.WriteLine()

End Sub

End Module
</font id=code></pre id=code>

1 Risposte

  • Re: [VB.NET] Piccolo aiuto con una variabile Byte ...

    Dim RecvBytes(2256) As Byte.

    Hai provato con il debugger a vedere dove non funziona?

    SuperCap



    (Le risposte che lascio sono limitate alle mie conoscenze sull'argomento trattato. Quindi potrei anche sbagliare!)
Devi accedere o registrarti per scrivere nel forum
1 risposte