public class TerminalServer extends Thread {         private int Port;         public static int BUFFERDATASIZE = 1024;         private static DatagramSocket dsocket;         private static DatagramPacket packet;         public TerminalServer(int port, int protocolType) {                   Port = port;
         } public static void sendPacket(TerminalInfo ti) {
try {
dsocket.send(ti.packet);

} catch (Exception e) {
logger.error("向终端发送数据包时发生异常",e);
}
} public void run() {
try {
byte buffer[] = new byte[BUFFERDATASIZE];

dsocket = new DatagramSocket(Port);
for (;;) {
packet = new DatagramPacket(buffer, buffer.length);
dsocket.receive(packet);

                                     //将收到的数据放入缓冲池中
TerminalInfo ti = new TerminalInfo();
TI.recvTime = new Date();
TI.packet = packet;
         DangerMessageQueue.putVehicleData(TI);
} } catch (Exception e) {
logger.error("车机数据接收线程发生异常",e);
}
}
}我的问题是:
我用DatagramSocket监听某个端口,收到数据后,将收到的DatagramPacket和时间赋给一个类的属性,然后将类作为对象放入缓冲池中,我用DatagramPacket的setData()方法对内容进行修改后,发送应答消息,我不知道是不是,将对方发过来的DatagramPacket内容修改后,用dsocket.send(ti.packet);就能给对方回复了,需不需要,将DatagramPacket中的IP和Port取出来,重新建一个DatagramSocket对象,用取出来的IP和Port建立连接,然后对对方发过来的那条消息进行回复!像调用上面的sendPacket()方法能否成功回复,不取出IP和Port,直接根据他发过来的DatagramPacket,我修改内容后,还把这条DatagramPacket发给他,他能收到吗?一定需要取出IP和Port,再开个Socket建立连接,然后再发送吗?
请教大家