62,623
社区成员
发帖
与我相关
我的任务
分享ConnectMessage cm = new ConnectMessage(senderid, senderNickname, scretmsg);
ByteArrayOutputStream byteStream = new ByteArrayOutputStream(1024);
ObjectOutputStream os = null;
byte sendBuf[] = (byte[])null;
DatagramSocket ds = null;
DatagramPacket dp = null;
try
{
os = new ObjectOutputStream(byteStream);
os.writeObject(cm);
sendBuf = byteStream.toByteArray();
ds = new DatagramSocket();
dp = new DatagramPacket(sendBuf, sendBuf.length, InetAddress.getByName(ipAddress), portAddress);
ds.send(dp);
ds.close();
}
catch(IOException e)
{
e.printStackTrace();
}
//当然,你也可仿照这个ConnectMessage发包过程做出其他的Message
ObjectInputStream s = null;
Message msg = null;
do
{
try
{
byte buf[] = new byte[1024];
DatagramPacket dpReceive = new DatagramPacket(buf, 1024);
dsReceive.receive(dpReceive);
s = new ObjectInputStream(new ByteArrayInputStream(dpReceive.getData()));
msg = (Message)s.readObject();
}
catch(Exception e)
{
e.printStackTrace();
}
AnswerMessage(msg);
} while(true);
private void AnswerMessage(Message msg)
{
msg.AnswerMessage();
}