2016-03-17 16 views
-3

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

例如)

让认为pkt是结构

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

是它创建一个包类和发送整个对象的好办法? 喜欢:

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<>(); 
. 
. 
. 
. 
. 

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

感谢名单

+0

这非常依赖于许多不同的方面。你的问题太普通了。我们可以帮助解决特定的编程问题;但不是“我应该如何设计我的应用程序的核心方面”。 – GhostCat

+0

嗯,我问简单的问题来得到简单的答案(不是讲座!)。我没有要求你给我的程序设计..我问了创建包格式 –

+0

的方法当然。但是,简单的问题有时也不符合stackoverflow的“范围”;如帮助中心所定义的那样。我不想讲课;我只是向你解释,最常见的问题只会导致声誉的丧失;很少增加知识。 – GhostCat

回答

0

用于经由插座

例如发送级别的方法:

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的信息。 我希望这个答案有帮助。

相关问题