如何通过串行/网络转换器sw管理串行远程打印机连接

时间:2016-09-04 14:42:36

标签: sockets printing queue buffer

PREAMBLE

我的票证软件是一个基于Web的应用程序,可控制本地连接到其串行端口的打印机。 该软件使用特定命令在每个票据发出之前检查打印机状态,并等待打印机状态回复几秒钟,如果答复为否定或未到达意味着打印机未准备就绪。

显然服务器比打印机快,并且需要流量握手以避免打印机内存饱和,通常标准RS232硬件握手是一个不错的选择,因为它会停止服务器进程等待打印机空闲内存,因此这可以考虑一个同步沟通。

  1. 服务器向打印机发送大量数据
  2. 打印机填充其内存并使用其握手停止服务器
  3. 服务器停止等待一些空闲内存的流
  4. 主要问题

    enter image description here

    有时我必须通过LAN使用远程客户端,但客户端的打印机无法使用串行电缆连接到服务器,因此我唯一的选择是使用网络套接字连接。我必须使用通过串行电缆本地连接到客户端的串行打印机。在这些情况下,我需要一个重定向软件来创建一个网络socket-tcp-listener,以将从网络接收的数据重定向到其串行端口。这对我来说是最好的: http://www.pira.cz/show.asp?art=piracom 问题是此连接不再同步:

    1. 服务器通过网络向客户端服务器软件发送大量票证,并在每次发送之前将状态请求发送给打印机并等待回复
    2. 客户端接收数据并通过串口将其重定向到打印机,当打印机内存填满时,客户端重定向器开始填充其缓冲区。
    3. 服务器不知道这一点,并继续发送数据,因为它的流没有被阻止...但它没有在合理的时间之前收到状态回复,因为命令没有真正发送到打印机,但它是在客户端缓冲区中排队。
    4. 在这些情况下,还有其他解决方案来解决这个问题吗?

      • 我需要通过远程串口打印到远程打印机(我不能使用以太网打印机)
      • 服务器应在每次打印前检查打印机状态

0 个答案:

没有答案