C#套接字打印到网络打印机-不';t打印
我试图模拟将原始数据发送到条形码打印机。因为我没有,我只是把一些文字发送到我网络上的佳能喷墨打印机。问题是当代码执行时,什么也不发生。我从以前的帖子中得到了这个代码(谢谢)。你能看到我遗漏了什么或做错了什么吗?谢谢C#套接字打印到网络打印机-不';t打印,c#,sockets,C#,Sockets,我试图模拟将原始数据发送到条形码打印机。因为我没有,我只是把一些文字发送到我网络上的佳能喷墨打印机。问题是当代码执行时,什么也不发生。我从以前的帖子中得到了这个代码(谢谢)。你能看到我遗漏了什么或做错了什么吗?谢谢 namespace ConsoleAppTest { class Program { static void Main(string[] args) { string text = "^XA" +
namespace ConsoleAppTest
{
class Program
{
static void Main(string[] args)
{
string text = "^XA" +
"^FO335,22,^CI0^A0,14,14^FR^FDConta^FS" +
"^FO368,22,^CI0^A0,14,14^FR^FDins^FS" +
"^PQ1" + "^XZ";
PrintToZebra zPrintToIP = new PrintToZebra("192.168.1.101",80, text);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace PMIConsoleAppTest
{
class PrintToZebra
{
public string printerIP { get; set; }
public int printerPort { get; set; }
public string myZPL { get; set; }
private EndPoint ep { get; set; }
private Socket sock { get; set; }
private NetworkStream ns { get; set; }
public PrintToZebra()
{
printerIP = "";
printerPort = 0;
myZPL = "";
}
public PrintToZebra(string anIP, int aPort, string aZPL)
{
printerIP = anIP;
printerPort = aPort;
myZPL = aZPL;
printToIP();
}
public void printToIP()
{
ep = new IPEndPoint(IPAddress.Parse(printerIP), printerPort);
sock = new Socket(ep.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
try
{
sock.Connect(ep);
ns = new NetworkStream(sock);
byte[] toSend = Encoding.ASCII.GetBytes(myZPL);
ns.BeginWrite(toSend, 0, toSend.Length, OnWriteComplete, null);
ns.Flush();
}
catch (Exception ex)
{
//Console.WriteLine(ex.ToString());
sock.Shutdown(SocketShutdown.Both);
sock.Close();
}
}
private void OnWriteComplete(IAsyncResult ar)
{
NetworkStream thisNS = ns;
thisNS.EndWrite(ar);
sock.Shutdown(SocketShutdown.Both);
sock.Close();
}
}
}
您正在向普通打印机发送条形码命令。。。这并不奇怪,如果它不工作…看看这个,我改变了条形码命令为正常文本,它仍然不工作,我没有得到任何例外。我将两行移到了上方,以确保不会导致未看到的异常。我可以使用Socket类打印到本地无线打印机吗?也许这就是问题的根源。我没有可以“侦听”传入请求的服务器。如果需要,我需要什么样的“服务器”?