在Server端先要利用ByteArrayInputStream将byte数据放入ByteArray中,再ByteArrayInputStream外套上DataInputStream。最后利用它的readLong()方法,将byte数组读出Long 类型。在Client端正好与其相反,还是利用这几个类,最后用toByteArray()将结果以Byte数组读出。。。
import java.net.*;
import java.io.*;
public class UdpServer {
public static void main (String []args){
byte [] by=new byte[1024];
DatagramPacket os=new DatagramPacket(by,by.length);
try{
DatagramSocket di=new DatagramSocket(8888);
while (true){
di.receive(os);
ByteArrayInputStream ts=new ByteArrayInputStream(os.getData());
DataInputStream ta=new DataInputStream(ts);
Long a=ta.readLong();
System.out.println(a);
}
}catch(IOException e){
System.out.println("程序出现问题了");
System.exit(0);
}
}
}
import java.net.*;
import java.io.*;
public class UdpClient {
public static void main (String []args){try{
long a=8000L;
ByteArrayOutputStream ts=new ByteArrayOutputStream();
DataOutputStream tz=new DataOutputStream(ts);
tz.writeLong(a);
byte [] ta=new byte[1024];
ta=ts.toByteArray();
DatagramPacket os=new DatagramPacket(ta,ta.length,new InetSocketAddress("127.0.0.1",8888));
DatagramSocket di=new DatagramSocket(6356);
di.send(os);
di.close();
}catch(IOException i){
System.out.println("程序出问题了");
System.exit(0);
}
}
}