1

TL;博士

当我dcmqrscp在 Windows 7 x64(官方当前 3.6.2 二进制文件)下运行时,服务器无法识别传入echoscu客户端的 IP。取而代之的是,根据与连接关联的以太网接口,将 的值callingPresentationAddress设置为www或。name_of_localhost

详细描述

dcmqrscp配置文件内容:

NetworkTCPPort  = 11113
MaxPDUSize      = 16384
MaxAssociations = 16
HostTable BEGIN

archive = (ARCHIVE, localhost, 11113)
client1 = (CLIENT1, 146.147.51.82, 12345)
client2 = (CLIENT2, www, 12345)
clients = client1, client2
HostTable END

AETable BEGIN
ARCHIVE   c:/tmp/dcm   RW (100, 1024mb)   clients
AETable END

我从 145.146.51.82 上的 Debian 机器连接到服务器:

echoscu -d 146.147.51.30 11113 -aec ARCHIVE -aet CLIENT1

服务器的输出如下:

D: $dcmtk: dcmqrscp v3.6.2 2017-07-14 $
D: 
D: setting network send timeout to 60 seconds
D: setting network receive timeout to 60 seconds
D: PDU Type: Associate Request, PDU Length: 205 + 6 bytes PDU header
(...)
D: Parsing an A-ASSOCIATE PDU
I: Association Received (www:CLIENT1 -> ARCHIVE)
D: Parameters:
D: ====================== BEGIN A-ASSOCIATE-RQ =====================
(...)
D: ======================= END A-ASSOCIATE-RQ ======================
D: Peer www:CLIENT1 is not not permitted to access ARCHIVE (see configuration file)
I: Refusing Association (BadAEService)

如果我将呼叫 AE 切换echoscuCLIENT2,答案是肯定的。这是因为配置文件中的行client2 = (CLIENT2, www, 12345)

如果echoscu是在同一台 Windows 机器上运行,而不是localhostor ,则127.0.0.1值为。这个问题在这个问题中有所描述。callingPresentationAddressname_of_localhost

在相反的方向(echoscu在 Windows,dcmqrscp在 Debian)一切都是正确的:

Association Received (146.147.51.30:CLIENT1 -> ARCHIVE)

我怀疑这个问题与我的 Windows 配置错误有关,但我不知道应该如何修复它。

4

1 回答 1

1

如果主机名与连接到 dcmqrscp 的系统的 IP 地址相关联(本地或通过 DNS 的相应条目),则此主机名用于匹配配置文件的“HostTable”部分中指定的主机名。如果此主机名查找不可用(或被 dcmqrscp 的选项 -dhl 禁用),则使用 IP 地址。这可能不是很直观,但据我所知,在过去的 20 + x 年(左右)中从未改变过。

有关详细信息,请参阅dcmqrcnf.txt中的文档。

于 2018-02-17T17:22:18.353 回答