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>