我正在尝试使用套接字将字符串打印到 RFID 打印机。这是我的代码。当我打电话时:
Print p = new Print();
p.printToIP();
我收到此错误:不允许发送或接收数据的请求,因为未连接套接字并且(使用 sendto 调用在数据报套接字上发送时)未提供地址。
这是我的课程代码:
class Print
{
    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; }
    //private AsyncCallback callbackWrite;
public Print()
{
    printerIP = "127.0.0.1";
    printerPort = 9001;
    myZPL = "AN12345";
}
public void printToIP()
{
    ep = new IPEndPoint(IPAddress.Parse(printerIP), printerPort);
    sock = new Socket(ep.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
    sock.Bind(ep);
    sock.Listen(10);
    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)
    {
        sock.Shutdown(SocketShutdown.Both);
        sock.Close();
    }
}
private void OnWriteComplete(IAsyncResult ar)
{
    NetworkStream thisNS = ns;
    thisNS.EndWrite(ar);
    sock.Shutdown(SocketShutdown.Both);
    sock.Close();
}