none
Verificar Conexion Net.sockets.TcpClient RRS feed

  • Pregunta

  • Dim ipAddress As String = "192.168.0.15"
    Dim port As Integer = 9100
    
    
    Dim client As System.Net.Sockets.TcpClient = New Net.Sockets.TcpClient()
    try
    client.Connect(ipAddress, port)
    Dim writer As System.IO.StreamWriter = New IO.StreamWriter(client.GetStream())
    writer.Write("Envio a imprimir a la impresora")
    writer.flush()
    writer.writerLine()
    writer.close()
    Client.Close()
    catch ex as Exception
    end try
    
    
    
    
    

    Este es mi código sencillo y funcional, para lo que quiero que es enviar a imprimir a la impresora. me funciona de maravilla. el problema esta cuando tengo problemas de red. que se queda frizado el problema por varios segundos como si estuviera esperando respuesta de la ip. quisiera que si no hay conexión de red, este ignore el comando y continué normal.

    Esto mismo me sucede con la cámara, la muestro y todo bien pero al fallar la red comienza a frizar el sistema.

    Dim IPcamara As String = "http://192.168.0.12/api/mjpegvideo.cgi"
              
    Dim Stream As MJPEGStream = New MJPEGStream(IPcamara)
     Stream.RequestTimeout = 5000
     Stream.ForceBasicAuthentication = True
     VideoSourcePlayer1.VideoSource = Stream
     VideoSourcePlayer1.Start()

    Espero puedan ayudarme y gracias de antemano.


    Alexander Jimenez

    viernes, 4 de octubre de 2019 15:07

Respuestas

  • si sabes usar hilos o threads pones ese codigo en un thread y pruebalo ya que ese puede ser el problema igual para usar udp solo tienes que cambiar la clase TcpClient por la Clase UdpClient

    mira un ejemplo usando un thread

            Dim th As New Threading.Thread(Sub()
                                               Dim ipAddress As String = "192.168.0.15"
                                               Dim port As Integer = 9100
    
    
                                               Dim client As System.Net.Sockets.TcpClient = New Net.Sockets.TcpClient()
                                               Try
                                                   client.Connect(ipAddress, port)
                                                   Dim writer As System.IO.StreamWriter = New IO.StreamWriter(client.GetStream())
                                                   writer.Write("Envio a imprimir a la impresora")
                                                   writer.Flush()
                                                   writer.WriteLine()
                                                   writer.Close()
                                                   client.Close()
                                               Catch ex As Exception
                                               End Try
                                           End Sub)
    
            th.IsBackground = True
            th.Start()
    


    • Editado DANTE-3D viernes, 4 de octubre de 2019 16:18
    • Marcado como respuesta AJ Designs viernes, 4 de octubre de 2019 18:40
    viernes, 4 de octubre de 2019 16:09

Todas las respuestas

  • Para lo que quieres esta la comunicacion UDP

    te recomiendo que  en ves de usar tcpClient  mejor uses UdpClient ya que esta ultima funciona sin connexion

    tambien te recomiendo que cuando uses conexion mediante Sockets  hagas uso de threads  esto evita que se bloquee la aplicacion


    • Editado DANTE-3D viernes, 4 de octubre de 2019 16:02
    viernes, 4 de octubre de 2019 15:53
  • algún ejemplo del mismo, no soy muy especialista en esa área.

    Alexander Jimenez

    viernes, 4 de octubre de 2019 16:03
  • si sabes usar hilos o threads pones ese codigo en un thread y pruebalo ya que ese puede ser el problema igual para usar udp solo tienes que cambiar la clase TcpClient por la Clase UdpClient

    mira un ejemplo usando un thread

            Dim th As New Threading.Thread(Sub()
                                               Dim ipAddress As String = "192.168.0.15"
                                               Dim port As Integer = 9100
    
    
                                               Dim client As System.Net.Sockets.TcpClient = New Net.Sockets.TcpClient()
                                               Try
                                                   client.Connect(ipAddress, port)
                                                   Dim writer As System.IO.StreamWriter = New IO.StreamWriter(client.GetStream())
                                                   writer.Write("Envio a imprimir a la impresora")
                                                   writer.Flush()
                                                   writer.WriteLine()
                                                   writer.Close()
                                                   client.Close()
                                               Catch ex As Exception
                                               End Try
                                           End Sub)
    
            th.IsBackground = True
            th.Start()
    


    • Editado DANTE-3D viernes, 4 de octubre de 2019 16:18
    • Marcado como respuesta AJ Designs viernes, 4 de octubre de 2019 18:40
    viernes, 4 de octubre de 2019 16:09