设置特定的数据包格式...java

set a specific packet format ...java

我想创建一个聊天应用程序, 所以我需要创建一个特定的数据包格式。

例如)

让我们考虑 pkt 是结构

pkt {
    type_no;
    msg;
    dest_ID;
    .
    .
    .
    .
}

创建数据包 class 并发送整个对象是一种好方法吗? 喜欢:

public class Packet implements Serializable  {
    private static final long serialVersionUID  = 1L;
    private int type;
    private String data1;
    private String data2;
    private String clientID;
    private String destID;
    private boolean hasFile=false;
    private boolean hasList;
    private byte[] file ;
    private HashMap <String,String> onlineList = new HashMap<>();
.
.
.
.
.

或者有更好的方法来处理这个问题?

谢谢

通过套接字

发送class的方法

例如:

public class packet implements Serializable  {


    String msg;
    int no;
    int Id;
    String info;

}

创建新对象

packet pkt = new packet();
pkt.msg="HI";
pkt.Id=2;
.
.
.

发送使用

// simple code 
ObjectOutputStream outputStream;
outputStream = new ObjectOutputStream(socket.getOutputStream());   
outputStream.writeObject(pkt);
socket.close();

接收使用

// simple code 
ObjectInputStream inStream;
inStream = new ObjectInputStream(socket.getInputStream());
packet rcvPkt = (packet)inStream.readObject(); 
socket.close();

您将在 rcvPkt 中获得信息。 希望这个回答对您有所帮助。