Principales respuestas
Verificar Conexion Net.sockets.TcpClient

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
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
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
-
-
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