-=!F34R!=-
New member
- Joined
- Jul 14, 2011
- Messages
- 4
- Programming Experience
- 3-5
Hi There, I’m new to posting so I apologise if I’m doing this wrong but here goes.
Background: I got a MS SQL Data base where I got a lot of data and tables that holds information about products and orders. I’m building a system where I got some cipher lab 8400 scanners(mobile scanner that has got a screen, wireless LAN and is fully programmable in basic) which will scan an order number, requests the data in the order number from the server and display what needs to be picket from stock.
My full code looks like this.
Sorry if its long, but I have got no clue where my problem is.
I wrote a client program in vb.net which works perfectly, I get all the data as expected.
When I connect with the scanner to the server I get the right result when connecting: *001,connected. When I request any of the order numbers I get no return from the server, but the server processes all the data and display it on the computer screen.
I programmed the scanner to display any data that’s coming through but all that’s coming through is the *001,connected and nothing else.
Not so long ago i did a simalar program in vb6 using winsock. Tried that program with the same program on the scanner and that work, so i know my problem is not on the scanner.
A second eye on my coding might help me resolve the problem, so please have a look at my code. Any solutions or sugestions will be much apriciated for I’ve stared at this code for about 3 days now
Thanks in advance.
Background: I got a MS SQL Data base where I got a lot of data and tables that holds information about products and orders. I’m building a system where I got some cipher lab 8400 scanners(mobile scanner that has got a screen, wireless LAN and is fully programmable in basic) which will scan an order number, requests the data in the order number from the server and display what needs to be picket from stock.
My full code looks like this.
Imports System.Net.Sockets Imports System.Text Imports system.data.sqlclient Imports System.Data Imports System.IO Module Module1 Dim clientsList As New Hashtable 'Dim clientSocket As TcpClient Public con As New SqlConnection Sub Main() Dim serverSocket As New TcpListener(1024) Dim clientSocket As TcpClient Dim infiniteCounter As Integer Dim counter As Integer Dim clno As String Dim i As Integer Try con.ConnectionString = ("Integrated Security=SSPI; Initial Catalog=Ball_Stratof; Data Source=(local)\sqlexpress;") con.Open() 'MsgBox("Connection made...") con.Close() Catch ex As Exception MsgBox("Error while connecting to sql server." & ex.Message) con.Close() End Try 'Try serverSocket.Start() msg("Server Started ....") counter = 0 infiniteCounter = 0 For infiniteCounter = 1 To 2 infiniteCounter = 1 counter += 1 clientSocket = serverSocket.AcceptTcpClient() Dim bytesFrom(10024) As Byte Dim dataFromClient As String Dim networkStream As NetworkStream = _ clientSocket.GetStream() networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize)) dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom) 'dataFromClient = _ 'dataFromClient.Substring(0, dataFromClient.IndexOf("$")) clientsList(dataFromClient) = clientSocket 'broadcast(dataFromClient + " Joined ", dataFromClient, False) Dim client As New handleClinet client.startClient(clientSocket, dataFromClient, clientsList) Console.WriteLine(dataFromClient.ToString & " connected ") Console.WriteLine("Client>> " & dataFromClient.ToString) 'For i = 1 To 2 Dim msg1 As String msg1 = "*001,connected" & Chr(13) Dim Item As DictionaryEntry For Each Item In clientsList Dim broadcastSocket As TcpClient broadcastSocket = CType(Item.Value, TcpClient) Dim broadcastStream As NetworkStream = _ broadcastSocket.GetStream() Dim broadcastBytes As [Byte]() broadcastBytes = Encoding.ASCII.GetBytes(msg1) Console.WriteLine("server>>" & msg1) broadcastStream.Write(broadcastBytes, 0, broadcastBytes.Length) broadcastStream.Flush() Next 'Next Next clientSocket.Close() serverSocket.Stop() msg("exit") Console.ReadLine() 'Catch ex As Exception 'MsgBox("Error." & ex.Message) 'con.Close() 'End Try End Sub Sub msg(ByVal mesg As String) mesg.Trim() Console.WriteLine(" >> " + mesg) End Sub Private Sub broadcast(ByVal msg As String) ', _ 'ByVal uName As String, ByVal flag As Boolean) 'Try Dim Item As DictionaryEntry For Each Item In clientsList Dim broadcastSocket As TcpClient broadcastSocket = CType(Item.Value, TcpClient) 'broadcastSocket = clientSocket Console.WriteLine("Broad cast socket: " & broadcastSocket.ToString) Dim broadcastStream As NetworkStream = _ broadcastSocket.GetStream() Dim broadcastBytes As [Byte]() 'broadcastBytes = Encoding.ASCII.GetBytes(msg) broadcastBytes = Encoding.ASCII.GetBytes(msg) Console.WriteLine("server>>" & msg) broadcastStream.Write(broadcastBytes, 0, broadcastBytes.Length) broadcastStream.Flush() Next End Sub Public Class handleClinet Dim clientSocket As TcpClient Dim clNo As String Dim clientsList As Hashtable Public Sub startClient(ByVal inClientSocket As TcpClient, _ ByVal clineNo As String, ByVal cList As Hashtable) Me.clientSocket = inClientSocket Me.clNo = clineNo Me.clientsList = cList Console.WriteLine("Client Added: " & cList.ToString) Console.WriteLine("Client Added: " & inClientSocket.ToString) Console.WriteLine("Client Added: " & clineNo.ToString) Dim ctThread As Threading.Thread = New Threading.Thread(AddressOf doChat) ctThread.Start() End Sub Private Sub doChat() Dim infiniteCounter As Integer Dim requestCount As Integer Dim bytesFrom(10024) As Byte Dim dataFromClient As String Dim sendBytes As [Byte]() Dim serverResponse As String Dim rCount As String requestCount = 0 For infiniteCounter = 1 To 2 infiniteCounter = 1 'Try requestCount = requestCount + 1 Dim networkStream As NetworkStream = _ clientSocket.GetStream() networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize)) dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom) 'MsgBox(dataFromClient.ToString) On Error GoTo Handler_1 dataFromClient = _ dataFromClient.Substring(0, dataFromClient.IndexOf("$")) 'msg("From client - " + clNo + " : " + dataFromClient) Dim SplitData() As String Dim DataType As String Dim ScanName As String SplitData = Split(dataFromClient, ",", ) DataType = SplitData(0) ScanName = SplitData(1) Console.WriteLine(ScanName & ">> " & dataFromClient.ToString) Select Case DataType Case Is = "001" 'Connection broadcast("*001,connected" & Chr(13)) 'broadcast("*OVER", clNo, True) Case Is = "002" 'Returnes order to scanner Dim command1 As String Dim DataR1 As SqlDataReader command1 = "select" command1 = command1 & Chr(13) & "OEORDHDR_SQL.entered_dt," command1 = command1 & Chr(13) & "OEORDHDR_SQL.ord_no," command1 = command1 & Chr(13) & "OEORDHDR_SQL.cus_no, " command1 = command1 & Chr(13) & "OEORDHDR_SQL.ship_to_name," command1 = command1 & Chr(13) & "OEORDLIN_SQL.line_no," command1 = command1 & Chr(13) & "OEORDLIN_SQL.item_no," command1 = command1 & Chr(13) & "OEORDLIN_SQL.item_desc_1," command1 = command1 & Chr(13) & "OEORDLIN_SQL.loc," command1 = command1 & Chr(13) & "OEORDLIN_SQL.qty_ordered," command1 = command1 & Chr(13) & "OEORDLIN_SQL.uom" command1 = command1 & Chr(13) & "FROM" command1 = command1 & Chr(13) & "OEORDHDR_SQL inner join OEORDLIN_SQL on" command1 = command1 & Chr(13) & "OEORDHDR_SQL.ord_type = OEORDLIN_SQL.ord_type" command1 = command1 & Chr(13) & "and OEORDHDR_SQL.ord_no = OEORDLIN_SQL.ord_no" command1 = command1 & Chr(13) & "WHERE" command1 = command1 & Chr(13) & "OEORDHDR_SQL.ord_type = 'O'" command1 = command1 & Chr(13) & "and OEORDHDR_SQL.status < '8'" command1 = command1 & Chr(13) & "and OEORDLIN_SQL.loc in ('PLU','VEG','SUR','LAN','MP')" command1 = command1 & Chr(13) & "and OEORDHDR_SQL.ord_no = " & SplitData(2) Dim mycommand = New SqlCommand(command1, con) Dim DataToSend1 As String 'Try con.Open() DataR1 = mycommand.executeReader() While DataR1.Read() 'Form1.DataGridView1.Rows.Add(New String() {Data(0).ToString(), Data(1).ToString(), Data(2).ToString(), Data(3).ToString(), Data(4).ToString, Data(5).ToString, Data(6).ToString, Data(7).ToString, Data(8).ToString, Data(9).ToString()}) DataToSend1 = "*002" & "," & DataR1(0).ToString() & "," & DataR1(1).ToString() & "," & DataR1(2).ToString() & "," & DataR1(3).ToString() & "," & DataR1(4).ToString & "," & DataR1(5).ToString & "," & DataR1(6).ToString & "," & DataR1(7).ToString & "," & DataR1(8).ToString & "," & DataR1(9).ToString() broadcast(DataToSend1) End While broadcast("*OVER") con.Close() 'Catch ex As Exception 'MsgBox("Query Unsucseesfull: " & ex.Message) 'con.Close() 'End Try Case Is = "003" 'Returnes stock detailes scanned Dim command2 As String Dim DataR2 As SqlDataReader command2 = command2 & Chr(13) & "select" command2 = command2 & Chr(13) & "SFORDFIL_SQL.ord_no," command2 = command2 & Chr(13) & "SFORDFIL_SQL.item_no," command2 = command2 & Chr(13) & "SFORDFIL_SQL.ord_loc," command2 = command2 & Chr(13) & "qty_on_scan = case" command2 = command2 & Chr(13) & "when SFORDFIL_SQL.inv_uom = 'TR' then 1" command2 = command2 & Chr(13) & "when SFORDFIL_SQL.inv_uom = 'EA' then cast(right(rtrim(SFORDFIL_SQL.item_desc_2),3) as int)" command2 = command2 & Chr(13) & "else" command2 = command2 & Chr(13) & "0" command2 = command2 & Chr(13) & "End" command2 = command2 & Chr(13) & "from SFORDFIL_SQL" command2 = command2 & Chr(13) & "where" command2 = command2 & Chr(13) & "ord_no = " & SplitData(2) command2 = command2 & Chr(13) & "and (SFORDFIL_SQL.ord_status in ('R', 'S', 'E') or " command2 = command2 & Chr(13) & "(SFORDFIL_SQL.ord_status = 'C'and cast(cast(SFORDFIL_SQL.compl_dt AS nvarchar) AS smalldatetime) >= dateadd(m, -2, getdate())))" Dim mycommand2 = New SqlCommand(command2, con) Dim DataToSend2 As String 'Try con.Open() DataR2 = mycommand2.executeReader() While DataR2.Read() DataToSend2 = "003" & "," & DataR2(0).ToString() & "," & DataR2(1).ToString() & "," & DataR2(2).ToString() & "," & DataR2(3).ToString() broadcast(DataToSend2) End While 'broadcast("*OVER") con.Close() 'Catch ex As Exception 'MsgBox("Query Unsucseesfull: " & ex.Message) 'con.Close() 'End Try End Select rCount = Convert.ToString(requestCount) 'broadcast(dataFromClient, clNo, True) 'Catch ex As Exception 'MsgBox(ex.ToString) 'End Try Next Exit Sub Handler_1: Exit Sub End Sub End Class End Module
Sorry if its long, but I have got no clue where my problem is.
I wrote a client program in vb.net which works perfectly, I get all the data as expected.
When I connect with the scanner to the server I get the right result when connecting: *001,connected. When I request any of the order numbers I get no return from the server, but the server processes all the data and display it on the computer screen.
I programmed the scanner to display any data that’s coming through but all that’s coming through is the *001,connected and nothing else.
Not so long ago i did a simalar program in vb6 using winsock. Tried that program with the same program on the scanner and that work, so i know my problem is not on the scanner.
A second eye on my coding might help me resolve the problem, so please have a look at my code. Any solutions or sugestions will be much apriciated for I’ve stared at this code for about 3 days now
Thanks in advance.