Trying to connect to Ticket Printer using VB6 Winsock

767 Views Asked by At

I am trying to send data from a VB6 program to a ticket printer Via TCP/IP. The only VB6 way I have found to try and do this is using the WinSock Control.

I use the following code to connect

 WinSock.Protocol = sckTCPProtocol
 WinSock.RemoteHost = txtIPAddress.Text
 WinSock.RemotePort = txtPort.Text
 WinSock.Connect

And then try and send the data as follows

WinSock.SendData ("<F8>" & txtPrint.Text & "<p>")

Everytime I try and do this, it fails because the Winsock.State is 6 (Connecting). This just stays at connecting and never connects or fails. I am able to connect to the printer using this IP/Port combo outside of VB6. Is there anything I may be doing wrong? Can the WinSock control do this?

In a .net program provided, this seems to be accomplished by doing the following:

CONNECT

            client = new TcpClient(ip_address, 9100);

            s = client.GetStream();  //s is System.Net.Sockets.NetworkStream
            s.ReadTimeout = 500;        //attempt to read for up to 0.5 seconds
            sr = new StreamReader(s);   //create read stream
            sw = new StreamWriter(s);   //create write stream
            sb = new BinaryWriter(s);   //create binary stream
            sw.AutoFlush = true;        //set write stream to flush data when < full buffer

SEND:

sw.WriteLine(command);

Thank you.

1

There are 1 best solutions below

2
On

You are missing up concepts. I remember this from 15 years ago.

Winsock is for work with a protocol. You must know the printer protocol. Is not just sample text.