Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VB.NET] Comunicare con il server

    In vb6 per comunicare con il server bastavano le seguenti righe di codice:

    codice:
    'Text1, Text2 indico l'host e la porta
    Private Sub Command1_Click()
    TCP1.Connect Text1, Text2
    End Sub
    
    'Chiudo la connessione aperta
    Private Sub Command2_Click()
    TCP1.Close
    End Sub
    
    'Invio richieste al server
    Private Sub Command3_Click()
    Text4 = Text4 & Text3 & vbCrLf
    TCP1.SendData Text3 & vbCrLf
    End Sub
    
    'Ricevo richieste
    Private Sub TCP1_DataArrival(ByVal bytesTotal As Long)
    TCP1.GetData Dalserver, vbString
    Text4 = Text4 & Dalserver
    End Sub
    Adesso in vb.net le cose cambiano...ho provato a fare così:

    codice:
    'Importo la libreria occorrente
    Imports System.Net.Sockets
    
    
    Public Class Connessioni
        	
    	'Creo l'oggetto che mi servirà a stabilire la connessione
    	Dim TcpClient As New TcpClient()
    
        
    	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            'Eseguo la connessine è gestisco l'eventuale errore
    	Try
    	
                TcpClient.Connect(IpServer.Text, Porta.Text)
                Stato.Text = "Connesso"
    
            Catch ex As Exception
                Stato.Text = "Non è stato possibile stabile la connessione"
            End Try
        End Sub
    
        
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            'Disconnetto il server
    	TcpClient.Close()
            Stato.Text = "Disconnesso"
        End Sub
    
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Dim InvioCom As String
    	'Tento Di inviare comandi al server
            InvioCom = InvioCmd.Text & InvioCmd.Text & vbCrLf
    
            TcpClient.Client.SendTo() 'Quì come devo fare???????????
    
        End Sub
    
    ....
    'Per ricevere le informazioni dal server come faccio???????
    
    
    End Class


    In pratica non so come inviare un comando al server e come ricevere la sua risposta...

    Come posso creare una condizione simile e funzionale in vb.net?

    GRAZIE
    La matematica non sa nulla delle cause, mentre la ricerca delle cause è compito della filosofia, e la logica, SCIENZA DEL PENSIERO IN QUANTO PENSIERO, ne fornisce lo strumento privilegiato.

    By W.HAMILTON

  2. #2
    Ci sono riuscito

    ecco il codice:

    codice:
    Imports System.Net.Sockets  ' Libreria per utilizzare le sockets
    Imports System.Text         'Libreria per le codifiche in ASCII
    
    Public Class Comandi
        Dim TcpClient As New TcpClient() 'Creo l'oggetto per creare la connessione
    
    
        'Form Principale
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        End Sub
    
    
        'Pulsante per stabilire la connessione con il server
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            Try
    
                TcpClient.Connect(IpServer.Text, Porta.Text)
                Stato.Text = "Connesso"
    
            Catch ex As Exception
                Stato.Text = "Non è stato possibile stabile la connessione"
            End Try
        End Sub
    
    
        'Pulsante per terminare la connessione con il server
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            TcpClient.Close()
            Stato.Text = "Disconnesso"
        End Sub
    
    
        'Pulsante per Inviare comandi al server
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Dim networkStream As NetworkStream = TcpClient.GetStream()
            Dim InvioCom As String
            InvioCom = InvioCmd.Text & InvioCmd.Text & vbCrLf
    
            ' Codifica e invio comando mediante buffer
            Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(InvioCom)
            networkStream.Write(sendBytes, 0, sendBytes.Length)
    
    
            ' lettura dal NetworkStream dei byte bufferizzati.
            Dim bytes(TcpClient.ReceiveBufferSize) As Byte
            networkStream.Read(bytes, 0, CInt(TcpClient.ReceiveBufferSize))
    
            'Ritorno della risposta del server  
            Dim returndata As String = Encoding.ASCII.GetString(bytes)
            Risposte.Text = returndata 'Questo è il textbox dove vengono ricevute le risposte
        End Sub
    End Class
    Potrebbe servire a qualcuno in futuro...
    OTTIMO PER COMUNICARE CON SERVER POP3 SMTP....
    FUNZIONA COME IL TELNET



    ALLA PROSSIMA
    La matematica non sa nulla delle cause, mentre la ricerca delle cause è compito della filosofia, e la logica, SCIENZA DEL PENSIERO IN QUANTO PENSIERO, ne fornisce lo strumento privilegiato.

    By W.HAMILTON

  3. #3
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    io quello che nn ho capito bene è

    ' Codifica e invio comando mediante buffer
    Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(InvioCom)
    networkStream.Write(sendBytes, 0, sendBytes.Length)

    ???????????????????????????

    ' lettura dal NetworkStream dei byte bufferizzati.
    Dim bytes(TcpClient.ReceiveBufferSize) As Byte
    networkStream.Read(bytes, 0, CInt(TcpClient.ReceiveBufferSize))

    dove ci sono le ????? io mi domando...allora scrivo delle info sul networkstream e poi il thread corrente aspetta la risposta del server o la ricezione è immediata ???

    tutto questo perchè vedo che dopo networkStream.Write(sendBytes, 0, sendBytes.Length)
    c'è subito la lettura della risposta e se i dati nn sono ancora arrivati al server ???.

  4. #4
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,584
    penso basti un timer
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  5. #5
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    sinceramente non credo,,,pare che la cosa la gestisca in auto......

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.