Logo UGIdotNET

Discussione 'Mi date una mano a tradurre'

# Pubblicato il 09 mag 2003 20.04 - Rispondi
fabio Civ
Mi date una mano a tradurre
Ho una applicazione in vb6 che si connette al server con loggetto winsok
non riesco a tradurre tutto con le classi messe a disposizione nel .net.
non riesco a capire come ricevere i dati senza il winsok.

Winsock2.RemoteHost = DNS_Addr
Winsock2.RemotePort = 53
DNSrecieved = False
Winsock2.SendData(dnsQuery)

Timer2.Enabled = True
time2 = 0
Do While Not DNSrecieved And time2 < 10
If Winsock2.CtlState = MSWinsockLib.StateConstants.sckError Then
Timer2.Enabled = False
Exit Function
End If
System.Windows.Forms.Application.DoEvents()
Loop
Timer2.Enabled = False

Private Sub Winsock2_Error(ByVal eventSender As System.Object, ByVal eventArgs As AxMSWinsockLib.DMSWinsockControlEvents_ErrorEvent) Handles Winsock2.Error
System.Diagnostics.Debug.WriteLine(eventArgs.Description)
End Sub
Private Sub Winsock2_DataArrival(ByVal eventSender As System.Object, ByVal eventArgs As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles Winsock2.DataArrival
DNSrecieved = True
ReDim dnsReply(eventArgs.bytesTotal)
Winsock2.GetData(dnsReply, VariantType.Array + VariantType.Byte)
End Sub

'---------------------Nuovo codice------------
Dim oStream As NetworkStream
Dim oConnection As New TcpClient()
'Imposto il Timeout per la connessione
oConnection.SendTimeout = 3000
'Connetto al server SMTP alla porta 25 dedicata alla posta
oConnection.Connect(DNS_Addr, 53)
'Recupero Stream di dati
oStream = oConnection.GetStream()

SendData(oStream, dnsQuery)

Function SendData(ByRef nStream As NetworkStream, ByVal sToSend As String) As String
Dim bData() As Byte = Encoding.ASCII.GetBytes(sToSend.ToCharArray)
Dim strResponse As String
If sToSend.Length() > 0 Then
nStream.Write(bData, 0, bData.Length())
strResponse = GetData(nStream)
Else
strResponse = CStr(False)
End If
Return strResponse

End Function
# Pubblicato il 10 mag 2003 0.09 - Rispondi
Raffaele Rialdi
Re: Mi date una mano a tradurre
L'approccio è molto diverso dal vecchio controllo delle Winsock a quello in dotnet. Perchè non ti guardi gli esempi su msdn. Sono fatti bene e prevedono sia l'utilizzo sincrono che asincrono.

Raffaele
# Pubblicato il 10 mag 2003 8.42 - Rispondi
Marco Barzaghi
Re: Mi date una mano a tradurre
concordo con raffaele, se vuoi anche su qsto sito ci sono un po di tip e articoli sull'argomento:

Comunicazioni TCP-IP con Visual Basic.NET
http://www.ugidotnet.org/articles/articles_read.aspx?ID=26

qui l'elenco dei tip dedicati al Networking:
http://www.ugidotnet.org/tips/tips_category.aspx?CategoryID=11

HTH
ciao M.rkino
# Pubblicato il 10 mag 2003 12.37 - Rispondi
fabio Civ
Re: Mi date una mano a tradurre
grazie.
ci dò un'occiata.

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185