【问题标题】:set a specific packet format ...java [closed]设置特定的数据包格式...java [关闭]
【发布时间】:2016-07-03 03:42:17
【问题描述】:

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

例如)

让我们认为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<>();
.
.
.
.
.

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

感谢

【问题讨论】:

  • 这在很大程度上取决于许多不同的方面。你的问题太笼统了。我们可以帮助解决特定的编程问题;但不是“我应该如何设计我的应用程序的核心方面”。
  • 好吧,我问了简单的问题来得到简单的答案(不是讲座!)。没让你给我程序设计..我问的是创建数据包格式的方法
  • 当然。但简单的问题有时也与stackoverflow的“范围”不匹配;如帮助中心所定义。我不是要讲课;我只是向您解释这些问题,因为这通常只会导致声誉损失;很少增加知识。
  • 如果你有答案,那么我很确定在你知道之前写的东西会少很多
  • 如果您查看帮助中心并阅读本网站的政策,那么您也可能会停止抱怨。

标签: java packet


【解决方案1】:

通过socket发送类的方法

例如:

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 中获得信息。 我希望这个答案会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 2013-08-02
    • 2021-11-20
    • 2011-06-12
    • 1970-01-01
    相关资源
    最近更新 更多