Hola Comunidad!!!
Llevaba rato de no participar de este medio de conocimiento... todo debido a
politicas laborales de la empresa en la cual laboraba... pero ahora, gracias
a Dios tengo acceso a esta fuente del saber...
La situación es la siguiente, estoy migrando una aplicación que fue
realizada en Visual Basic 6.0 a Visual Basic .NET (Express) 2005, en vista
de que muchas de las palabras claves cambian, y la definición de muchos
objetos cambia, decidí realizar desde CERO el código, dicha aplicación es
una interface de comunicación entre unas terminales móviles (Lipman Nurit
8320) y un servidor de Base de Datos, para descargar datos de ventas de la
terminal, y cargarle información de artículos en existencia de devuelta...
hasta hay todo muy bien, pero resulta que esta aplicación establece
comunicación via TCP/IP con la terminal Lipman, y esta última le envia por
un puerto configurado previamente, la información sobre los movimientos,
ventas y devoluciones hechas, etc... Pues bien, es en este proceso, donde
patino... inicalmente era cuestion de IP (mi equipo no estaba apuntando al
DNS adecuado), ya esto lo resolví... e hice una prueba a través de Hyper
Terminal, configurandolo para que escuche por el puerto utilizado en la
aplicación y efectivamente me llegan datos, toda la información completa...
Pero en mi aplicacion de .NET, no... estuve revisando código por código,
linea a linea a ver que sucede y todo está tal cual los ejemplos de la MSDN
para realizar un Listener que escuche un puerto X y extraiga el flujo de
datos enviados por el canal... más sin embargo solo logro trar el primera
fila de datos, y el resto de datos, no llegan... y para colmo de males no
saca error de excepción...
Realmente no se que hacer, le he dado vueltas a este asunto y no encuentro
una solución... no en el momento, y con lo poco que conozco de Visual Studio
.NET 2005
Agradezco de ustedes cualesquier luz al respecto...
anexo el fragmento de código que empleo para traer los datos de la terminal
lipman.
Public Shared Sub Main(ByRef frmFormulario As frmPrincipal, ByVal intPuerto
As Integer, ByVal strIpAddress As String)
Try
' Set the TcpListener on port 13000.
Dim tcpServer As New TcpListener(Net.IPAddress.Parse(strIpAddress),
intPuerto)
' Start listening for client requests.
tcpServer.Start()
Dim data As [String] = Nothing
' Enter the listening loop.
While True
frmFormulario.UpdateStatus("Waiting for a connection... ")
' Perform a blocking call to accept requests.
' You could also user server.AcceptSocket() here.
Dim tcpCliente As TcpClient = tcpServer.AcceptTcpClient()
frmFormulario.UpdateStatus("Connected!")
' Get a stream object for reading and writing
Dim nwsLector As NetworkStream = tcpCliente.GetStream()
'Buffer for reading data
Dim bytLector(tcpCliente.ReceiveBufferSize) As [Byte]
nwsLector.Read(bytLector, 0, CInt(tcpCliente.ReceiveBufferSize))
data = Nothing
' Translate data bytes to a ASCII string.
data = System.Text.Encoding.ASCII.GetString(bytLector, 0,
CInt(tcpCliente.ReceiveBufferSize))
frmFormulario.UpdateStatus([String].Format("Receibido: {0}", data))
' Shutdown and end connection
tcpCliente.Close()
tcpServer.Stop()
frmFormulario.UpdateStatus([String].Format("Receibido: {0}", data))
End While
Catch e As SocketException
frmFormulario.UpdateStatus([String].Format("SocketException: {0}", e))
End Try
End Sub 'Main
Leer las respuestas