package network; 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 network.protocol.Packet; public class SocketWriter { private final DatagramSocket socket; public SocketWriter(DatagramSocket socket) { this.socket = socket; } public void sendPacket(Packet packet, InetSocketAddress address) throws IOException { ByteArrayOutputStream stream = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(stream); oos.writeObject(packet); oos.flush(); byte[] data = stream.toByteArray(); DatagramPacket dataPacket = new DatagramPacket(data, data.length, address.getAddress(), address.getPort()); this.socket.send(dataPacket); } }