Java ASN.1模块说明

Java ASN.1模块说明,java,c,asn.1,Java,C,Asn.1,我尝试使用ASN.1进行客户机-服务器通信,但我不确定我是否正确理解它。客户端必须向服务器发送一个整数,服务器读取并发回一个数字和一个字符串,客户端读取并发回一个字符串,服务器读取并发回一个字符串。是这样的 Client ---> server 1 integer Server --> Client 1 integer Server --> Client 1 String Client ---> server 1 String Server --> Client

我尝试使用ASN.1进行客户机-服务器通信,但我不确定我是否正确理解它。客户端必须向服务器发送一个整数,服务器读取并发回一个数字和一个字符串,客户端读取并发回一个字符串,服务器读取并发回一个字符串。是这样的

Client ---> server 1 integer

Server --> Client 1 integer
Server --> Client 1 String

Client ---> server 1 String
Server --> Client 1 String
clientInt     INTEGER ,                 
我编写了以下ASN.1模块,我成功地用jac asn1生成了类,但我不确定模块的描述是否正确,因为这两个序列完全相同。我不确定是否必须只输入要发送或接收的变量,或者同时输入两者

clientInt     INTEGER ,                 
客户端::=序列{

clientInt     INTEGER ,                 
客户整数

clientInt     INTEGER ,                 
serverInt整数

clientInt     INTEGER ,                 
serverString位字符串

clientInt     INTEGER ,                 
clientString位字符串, 服务器响应位字符串

clientInt     INTEGER ,                 
}

clientInt     INTEGER ,                 
服务器::=序列{

clientInt     INTEGER ,                 
serverInt整数

clientInt     INTEGER ,                 
serverString位字符串

clientInt     INTEGER ,                 
clientString位字符串, 服务器响应位字符串

clientInt     INTEGER ,                 
}

clientInt     INTEGER ,                 
END--模块的末尾,END 必需的

clientInt     INTEGER ,                 

是的,您的“服务器”和“客户端”类型是相同的。那么,为什么要定义两种类型来表示本质上相同的东西呢?还要注意,ASN.1没有定义协议;它定义了可以用作消息的类型。您必须决定您希望消息由什么组成,以及协议将如何使用它们。