我尝试使用此代码发送和接收带有 ASN.1 生成类的整数
客户端发送整数:
ClientFirstRequest h = new ClientFirstRequest();
h.clientInt.setValue(9);
BerOutputStream bos = new BerOutputStream(_socket.getOutputStream());
h.encode(bos);
接收它的服务器:
ClientFirstRequest h = new ClientFirstRequest();
BerInputStream in = new BerInputStream(socket.getInputStream());
h.decode(in);
ASN1Integer ClientNumber= h.clientInt;
int clientNumbervalue = (int)ClientNumber.getValue();
它工作得很好,但在第二个序列中我必须发送两个参数,一个 Int 和一个 String
服务器发送一个整数和一个字符串
ServerFirstResponse response1 = new ServerFirstResponse();
response1.serverInt.setValue(clientNumbervalue);
response1.serverString.setValue(randomString);
BerOutputStream bos = new BerOutputStream(socket.getOutputStream());
h.encode(bos);
接收它们的客户
ServerFirstResponse response1 = new ServerFirstResponse();
BerInputStream in = new BerInputStream(_socket.getInputStream());
response1.decode(in);
但我有一个错误
com.chaosinmotion.asn1.AsnFatalException:
在解码过程中,您的 SEQUENCE 的元素之一(或内部序列/集合的元素)不是可选的并且未初始化!(如果存在)此元素的名称为:com.turkcelltech.jac.Sequence.fillSequenceVariables(Sequence.java:246) 上 com.turkcelltech.jac.Sequence.check_OptionalAndInitialized_Status(Sequence.java:259) 上的 serverString。 jac.Sequence.decode(Sequence.java:105) 在 Client.main(Client.java:54)