尝试使用VB6 Winsock连接到Ticket Printer

时间:2014-11-19 16:08:54

标签: printing tcp vb6 winsock

我正在尝试通过TCP / IP将数据从VB6程序发送到票据打印机。我发现尝试执行此操作的唯一方法是使用WinSock控件。

我使用以下代码连接

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

然后尝试按如下方式发送数据

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

每次我尝试这样做都会失败,因为Winsock.State是6(正在连接)。这只是保持连接,永远不会连接或失败。我可以使用VB6之外的这个IP /端口组合连接到打印机。有什么我可能做错了吗? WinSock控件可以执行此操作吗?

在提供的.net程序中,这似乎可以通过执行以下操作来完成:

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

谢谢。

1 个答案:

答案 0 :(得分:0)

你错过了概念。我从15年前就记起了这一点。

Winsock适用于协议。您必须知道打印机协议。不只是示例文本。