【问题标题】:Writing To Multiple TCP Ports From A Print Monitor从打印监视器写入多个 TCP 端口
【发布时间】:2017-12-03 12:21:36
【问题描述】:

我有一个语言监视器,我试图从中查询打印机。

首先让我为可能的混淆道歉,因为“端口”在此描述中意味着两件事。一种用途是指打印机配置使用的端口,可以是 TCP、USB 等。还有一种用途是指与打印机通信时发送数据的端口地址IP 地址。

我需要能够指定不同的端口地址,以通过特定于其固件的同一 IP 向打印机发送不同的自定义查询。我找不到任何有关进行此通信的标准方式的示例或文档...我可以提取 IP 地址并打开一个网络套接字,但我不确定这是否是处理此通信的适当方式。打印机通过一个端口发送状态并通过另一个端口打印数据的情况并不少见。如果我想写入默认端口,我可以使用 pfnWritePort 和 pfnReadPort,但这些不允许我指定实际端口。它使用驱动程序配置的任何内容。

谁能提供一些指导或示例,说明我应该如何通过我的语言监视器做到这一点?

编辑:作为澄清的一个例子,所有命令都发送到同一个 IP,但根据我需要发送的命令/查询,TCP 端口需要更改。我现在处理它的方式是为数据和状态通道打开一个具有相同 IP 和不同端口号的网络套接字。

【问题讨论】:

  • 你应该清楚地定义平台,那些id隐含着windows?您将自己与端口词混淆了。您的意思是前一个引理 a 永远不会被称为端口,它是一个接口。 Windows GUI 体系​​结构虽然使用术语端口来描述打印机的引用虚拟接口。后者是“多个TCP端口”
  • 欢迎使用 Stack Overflow。请阅读introduction tourHow To AskHow to provide good example guide
  • 我只在 Windows 驱动程序开发方面做了少量工作,并且主要使用现有项目作为示例。我对术语混淆和缺乏定义表示歉意。其中一些是我不熟悉我正在使用什么技术来定义。你的假设是正确的 Swift。为了避免混淆,我将在以后的回复中将它们称为虚拟接口(Windows 端口)和 TCP 端口。

标签: printing drivers


【解决方案1】:

您应该需要编写一个能够重新配置驱动程序的应用程序。操作系统的理念是每个真实设备都对应于驱动程序和/或接口的实例。这可能是一个提升的操作,因为它需要创建新的打印机接口(Windows GUI 术语中的“端口”)并更改驱动程序设置。

【讨论】:

  • 为了确保我对您的理解正确,您是说单个驱动程序实例不应该与每个真实设备通信,并且外部应用程序应该管理这些实例的创建和配置,以便它们可以共同用于通信?你能澄清一下什么是真正的设备吗?所有通信都将通过相同的设备和连接进行,只是通过不同的通道到达相同的 IP(在这种情况下为 TCP 端口),具体取决于命令/查询是什么,这就是驱动程序 - 特别是打印监视器 - 需要知道和路线。
  • @Christopher Whittier 语言监视器的目的不是路由 .. 它是假脱机和端口监视器之间的数据转换。以及为什么会有这样的设置。哦,有类似docs.microsoft.com/en-us/windows-hardware/drivers/print/…
  • 打印监视器提供了一个 SendRecvBidiDataFromPort 函数,其目的是促进与打印机的通信以进行默认和自定义查询。可以通过这种方式查询墨水量和打印机状态等信息。我再次强调,设备通过不同的端口处理不同的查询/响应是很常见的。数据通道、状态通道等。不需要配置,但是语言监视器或端口监视器(假设它们是组合的)应该知道如何执行这些查询,这包括知道要使用哪个通道。
  • 问题不在于哪一层负责路由决策,而在于通过所需端口从打印监视器发送 TCP/IP 数据的正确方法。如果答案是不应该这样做,那么如何通过windows GDI驱动接口支持在该功能中操作的打印机的状态?
猜你喜欢
  • 1970-01-01
  • 2021-07-10
  • 2020-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-13
  • 1970-01-01
相关资源
最近更新 更多