我的服务器使用ASN.1生成的类接收Integer

BerInputStream in = new BerInputStream(socket.getInputStream());
           h.decode(in);
           ASN1Integer ClientNumber= h.clientInt;
            System.out.println(ClientNumber);


h.clientInt返回一个ASN.1Integer。
如果客户端发送4,则输出为

BerInteger([Universal 2])=4


如何将此ASN.1Integer转换为Integer

最佳答案

ASN1Integer扩展BerIntegerBerInteger具有getValue方法,该方法返回long值。如果需要,可以将其强制转换为整数:

ASN1Integer clientNumber = h.clientInt;
int value = (int)clientNumber.getValue();


(尽管最好使用长时间才能达到全精度)

08-04 09:24