我正在尝试通过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);
谢谢。
答案 0 :(得分:0)
你错过了概念。我从15年前就记起了这一点。
Winsock适用于协议。您必须知道打印机协议。不只是示例文本。