Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    10

    [VB2010] tcplistener obsoleto... arrgh

    Mio server:

    codice:
    Imports System.Net.Sockets
    Imports System.Text
    
    Public Class Form1
        Class TCPSrv
            Shared Sub Main()
                Const portNumber As Integer = 8000
                Dim tcpListener As New TcpListener(portNumber)
                tcpListener.Start()
                Console.WriteLine("Waiting for connection...")
                Try
                    Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()
                    Console.WriteLine("Connection accepted.")
                    Dim networkStream As NetworkStream = tcpClient.GetStream()
                    Dim bytes(tcpClient.ReceiveBufferSize) As Byte
                    networkStream.Read(bytes, 0, CInt(tcpClient.ReceiveBufferSize))
                    Dim clientdata As String = Encoding.ASCII.GetString(bytes)
                    Console.WriteLine(("Client sent: " + clientdata))
                    Dim responseString As String = "Connected to server."
                    Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes(responseString)
                    networkStream.Write(sendBytes, 0, sendBytes.Length)
                    Console.WriteLine(("Message Sent /> : " + responseString))
                    tcpClient.Close()
                    tcpListener.Stop()
                    Console.WriteLine("exit")
                    Console.ReadLine()
                Catch e As Exception
                    Console.WriteLine(e.ToString())
                    Console.ReadLine()
                End Try
            End Sub
        End Class 
    End Class
    Mi da errore obsolete.. waaaaaa
    Dim tcpListener As New TcpListener(portNumber)
    Indi? Perkè cambiano ogni 5 secondi le cose... need help.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Devi usare un altro costruttore

    "Questo costruttore è obsoleto. Utilizzare il costruttore TcpListener.TcpListener(IPAddress, Int32) o TcpListener.TcpListener(IPEndPoint)."
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    10
    I problemi...

    1 - Errore nella comunicazione (SocketException)
    2 - Come concateno il catch dell'errore nella texbox?


    Ecco il client

    codice:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Try
                ' Creo il TcpClient 127.0.0.1 porta 13000
                Dim port As Int32 = 13000
                Dim server As [String] = "127.0.0.1"
                Dim client As New TcpClient(server, port)
                Dim message As [String] = "PROVA"
                ' Traslo message in codice ASCII e lo metto nel Byte array
                Dim data As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message)
                ' Creo lo stream per leggere e scrivere
                Dim stream As NetworkStream = client.GetStream()
                ' Mando il messaggio al TcpServer
                stream.Write(data, 0, data.Length)
                ' Notifico nella textbox l'invio del messaggio
                stato_connessione.Text = ("Sent: {0}" & message)
                ' Ricevo la risposta del TcpServer
                data = New [Byte](256) {}
                Dim responseData As [String] = [String].Empty
                Dim bytes As Int32 = stream.Read(data, 0, data.Length)
                responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes)
                stato_connessione.Text = ("Received: {0}" & responseData)
                ' Chiudo tutto
                stream.Close()
                client.Close()
                ' Notifico errori eventuali
            Catch x As ArgumentNullException
                errori.Text = "ArgumentNullException: {0}" 'come concateno quì la x?
            Catch y As SocketException
                errori.Text = "SocketException: {0}" 'come concateno quì la y?
            End Try
        End Sub
    Ecco il server

    codice:
    Private Sub Main()
            Dim server As TcpListener
            server = Nothing
            Try
                ' Setto il TcpListener su porta 13000 e localhost
                Dim port As Int32 = 13000
                Dim localAddr As IPAddress = IPAddress.Parse("127.0.0.1")
                server = New TcpListener(localAddr, port)
                ' Mi metto in ascolto
                server.Start()
                ' Buffer per leggere i dati in arrivo
                Dim bytes(1024) As Byte
                Dim data As String = Nothing
                ' Loop di ascolto
                While True
                    connessione.Text = "Waiting for a connection... "
                    Dim client As TcpClient = server.AcceptTcpClient()
                    connessione.Text = "Connected!"
                    data = Nothing
                    ' Creo lo stream per leggere e scrivere
                    Dim stream As NetworkStream = client.GetStream()
                    Dim i As Int32
                    ' Loop per ricevere tutti i dati del client
                    i = stream.Read(bytes, 0, bytes.Length)
                    While (i <> 0)
                        ' Converto i data bytes da ASCII a stringhe
                        data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
                        connessione.Text = ("Received: {0}" & data)
                        data = data.ToUpper()
                        Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes(data)
                        ' Invio risposta
                        stream.Write(msg, 0, msg.Length)
                        connessione.Text = ("Sent: {0}" & data)
                        i = stream.Read(bytes, 0, bytes.Length)
                    End While
                    ' Chiudo tutto
                    client.Close()
                End While
            Catch e As SocketException
                errore.Text = ("SocketException: {0}") 'come per il client non riesco a concatenare il catch di errore
                'su consolle scrivevo così --- Console.WriteLine("SocketException: {0}", e)
            Finally
                server.Stop()
            End Try
        End Sub
    End Class

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Beh ... mi sembra che sei stato troppo conciso ...

    1 - Errore nella comunicazione ... dove? Quale linea è coinvolta? In quale contesto?

    2 - Non sai concatenare delle stringhe in una textbox ? Ho capito ? O no ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    10
    Si mi sa son stato troppo coinciso ^_^

    1 - Quando provo a connettermi al server mi da errore richiamando questo catch

    Catch y As SocketException
    errori.Text = "SocketException: {0}"

    Forse non vede il server, non trova l'indirizzo, boh

    2

    Catch y As SocketException
    errori.Text = "SocketException: {0}" 'come concateno quì la y?

    Alla y dovvrebbe darmi il tipo di errore che vorrei concatenare alla scritta "SocketException: {0}" nella textbox "errori"

    Spero di essermi spiegato meglio

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Forse non vede il server, non trova l'indirizzo, boh
    Beh ... è questo il problema ... la causa la conosci solo tu ... leggi il messaggio d'errore e diccelo.

    Per la concatenazione ... ripeto ... come concateneresti due stringhe?

    errori.Text = "SocketException: " + y.Message
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    10
    Ero io che ero rimasto ancora all'epoca della clava con la consolle

    Console.WriteLine("SocketException: {0}", e)

    Per l'errore era come immaginavo, ecco cosa mi riporta:

    SocketException: {0} Impossibile stabilire la connessione. Rifiuto persistente del computer di destinazione 127.0.0.1:13000


  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Sembra che il server non sia attivo ... tu lanci *prima* il codice server e *poi* quello client ... giusto?

    Dopo aver attivato il codice server, prova a dare da console DOS il comando

    TELNET localhost 13000

    P.S. La parte {0} toglila ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    10
    winrs localhost 13000 (non ho telnet su questo windows )

    Come da previsione non è attivo....

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    10
    Fermo... ho risolto...

    Non capivo come mai nonstante nel ciclo del server non mi usciva neanche il messaggio di waiting connection...

    E ci credo non lo avevo messo ne nel load del form ne in un pulsante....



    Scusa il tempo che ti ho fatto perdere stupidamente

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.