package cn.UDP;
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.util.Date;
public class UDPServerObj {
public static void main(String[] args) throws IOException, ClassNotFoundException {
System.out.println("server:");
DatagramSocket server = new DatagramSocket(8090);
byte[] container = new byte[1024 * 60];
DatagramPacket packet = new DatagramPacket(container, container.length);
server.receive(packet);
byte[] datas = packet.getData();
ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(new ByteArrayInputStream(datas)));
boolean flag = ois.readBoolean();
char ch = ois.readChar();
int i = ois.readInt();
String str = ois.readUTF();
Object str2 = ois.readObject();
Object drink = ois.readObject();
Object date = ois.readObject();
if (str2 instanceof String) {
String strObj = (String) str2;
System.out.println(strObj);
}
if (drink instanceof Drink) {
Drink drinkObj = (Drink) drink;
System.out.println(drinkObj.getName() + "-->" + drinkObj.getPrice() + "-->" + drinkObj.getCost());
}
if (date instanceof Date) {
Date dateObj = (Date) date;
System.out.println(dateObj);
}
System.out.println(ch);
server.close();
}
}
package cn.UDP;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.util.Date;
public class UDPClientObj {
public static void main(String[] args) throws IOException {
System.out.println("client:");
DatagramSocket client = new DatagramSocket(8080);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(new BufferedOutputStream(baos));
oos.writeBoolean(false);
oos.writeChar('a');
oos.writeInt(0);
oos.writeUTF("我爱你");
oos.writeObject("我还爱你");
oos.writeObject(new Drink("Cola", 3, 2));
oos.writeObject(new Date());
oos.flush();
byte[] datas = baos.toByteArray();
DatagramPacket packet = new DatagramPacket(datas, datas.length, new InetSocketAddress("localhost", 8090));
client.send(packet);
client.close();
}
}
package cn.UDP;
public class Drink implements java.io.Serializable {
private String name;
private double price;
private transient double cost;
public Drink() {
}
public Drink(String name, double price, double cost) {
super();
this.name = name;
this.price = price;
this.cost = cost;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public double getCost() {
return cost;
}
public void setCost(double cost) {
this.cost = cost;
}
}