我想這個代碼用ASN.1生成的類使用一個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和一個字符串
服務器發送一個整數和字符串
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.check_OptionalAndInitialized_Status(Sequence.java:259) serverString在 com.turkcelltech.jac.Sequence.fillSequenceVariables(Sequence.java:246) 在com.turkcelltech.jac.Sequence.decode(Sequence.java:105)在 Client.main(Client.java:54)