Hi!
When communicating with a meter through a gateway, there is a GXDLMSException("Invalid reply. The client has closed the connection.") thrown for a successful ReleaseResponse wrapped in GatewayResponse.
I believe the reason is that this peace of code doesn't recognize it: https://github.com/Gurux/Gurux.DLMS.Net/blob/5284708bd1b9823d9d9f817223dc2f5993deeb02/Development/GXDLMS.cs#L5658-L5665
Example packet:
0001000100110025E7030B38313030303133353537346315800100BE10040E0800065F1F040000181D01820007<WRAPPER len="45" >
<TargetAddress Value="1" />
<SourceAddress Value="17" />
<PDU>
<GatewayResponse>
<NetworkId Value="3" />
<PhysicalDeviceAddress Value="3831303030313335353734" />
<ReleaseResponse>
<Reason Value="Normal" />
<InitiateResponse>
<NegotiatedDlmsVersionNumber Value="6" />
<ProposedConformance>
<ConformanceBit Name="Action" />
<ConformanceBit Name="SelectiveAccess" />
<ConformanceBit Name="Set" />
<ConformanceBit Name="Get" />
<ConformanceBit Name="BlockTransferWithSetOrWrite" />
<ConformanceBit Name="BlockTransferWithGetOrRead" />
</NegotiatedConformance>
<NegotiatedMaxPduSize Value="386" />
<VaaName Value="7" />
</InitiateResponse>
</ReleaseResponse>
</GatewayResponse>
</PDU>
</WRAPPER>