设置特定的数据包格式...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 中获得信息。
希望这个回答对您有所帮助。
我想创建一个聊天应用程序, 所以我需要创建一个特定的数据包格式。
例如)
让我们考虑 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 中获得信息。 希望这个回答对您有所帮助。