尝试使用 VB6 Winsock 连接到票务打印机
Posted
技术标签:
【中文标题】尝试使用 VB6 Winsock 连接到票务打印机【英文标题】:Trying to connect to Ticket Printer using VB6 Winsock 【发布时间】:2014-11-19 16:08:53 【问题描述】:我正在尝试通过 TCP/IP 将数据从 VB6 程序发送到票据打印机。我发现尝试执行此操作的唯一 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 程序中,这似乎是通过执行以下操作来完成的:
连接
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
发送:
sw.WriteLine(command);
谢谢。
【问题讨论】:
【参考方案1】:你错过了概念。我记得 15 年前的事情。
Winsock 用于使用协议。您必须了解打印机协议。不仅仅是示例文本。
【讨论】:
我已经更新了我的原始问题,以显示它通过提供的 C# .net 测试程序进行交互的方式。我在vb6程序中发送的文本是一样的。 您需要的是为 vb6 翻译 c# 库。这就像尝试将 javascript 翻译成汇编程序。以上是关于尝试使用 VB6 Winsock 连接到票务打印机的主要内容,如果未能解决你的问题,请参考以下文章