ソケットへのストリームをネットワークに書き込もうとしましたが、次のエラーを取得して拒否したため、接続できませんでした私たちは印刷するものがあり、クライアントが接続されているかどうかをチェックし、接続していなければストリームを取得し、ストリームに書き込んでフラッシュします。れるtcpClient:ターゲットマシンが積極的にそれが
サンプル・コードは次のとおりです。
/// <summary> Print via TCP </summary>
private void PrintViaTcp(object a)
{
Debug.WriteLine($"Printing via TCP...");
var labelData = a as LabelData;
// Send data to the label printer
SendToLabelPrinter(labelData.Commands, labelData.PrinterAddress, labelData.Port);
Debug.WriteLine(" -> Printed labelId : {0}", labelData.LabelId);
}
/// <summary> Send the native command to the label printer </summary>
public void SendToLabelPrinter(string commands, string address, int? port)
{
//Connect to tcp client if a connection does not exist
if (!TcpClient.Connected) TcpClient.Connect(address, port ?? 9100);
//Get the network stream
var stream = TcpClient.GetStream();
// Send command strings to printer
//stream.Write(Encoding.ASCII.GetBytes(commands), 0, commands.Length);
stream.Write(Encoding.GetEncoding(850).GetBytes(commands), 0, commands.Length);
//Flush the buffer on the network stream
stream.Flush();
}
これは、小さなプリントジョブ< 100のプリントのために動作しますが、私は100の上に行くとき、エラーがランダムに不足しているプリントを発生します。分析すると、ランダムに発生するTCPまたはネットワークの問題の根本原因を見つけるために
これは並行性の問題のようです。プリンターサーバーで同時に処理できるジョブの数を確認する必要があります – yorodm