服务端:
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* 服务端
* @author huawangxin
*
* 2016年11月23日 上午1:24:53
*/
public class Server {
private DatagramSocket socket;
/*
* 服务端的启动
*/
public void start(){
try {
socket = new DatagramSocket(8088);
byte[] data=new byte[100];
DatagramPacket recvPacket=new DatagramPacket(data, data.length);
//接收数据到包中
//注意该方法是个阻塞方法
socket.receive(recvPacket);
//拆包拿数据
byte[] d=recvPacket.getData();
//有效数据长度
int dlen=recvPacket.getLength();
/*
* String(byte[] b,int offset,int len,
* String caarserName)
* 将给定的字节数组中,从offset处
* 开始连续len个字节,再根据给定的字符串转换为字符串
*/
String info=new String(d,0,dlen,"UTF-8");
System.out.println("客户端说:"+info);
int port=recvPacket.getPort();
InetAddress addr=recvPacket.getAddress();
String sendStr="hello,欢迎来到英雄联盟";
byte[] sendBuf=sendStr.getBytes();
DatagramPacket sendPacket=new DatagramPacket(sendBuf, sendBuf.length,addr,port);
socket.send(sendPacket);
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String [] args){
Server server=new Server();
server.start();
}
}
客户端:
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* 客户端
* @author huawangxin
*
* 2016年11月23日 上午1:24:40
*/
public class Client {
private DatagramSocket socket;
/*
* 客户端的启动
*/
public void start(){
try{
socket = new DatagramSocket();
String str="你好!服务端!";
byte[] data=str.getBytes("UTF-8");
//打包:准备包裹,填写地址,装入数据
InetAddress address=InetAddress.getByName("127.0.0.1");
int port=8088;
//创建发送包
DatagramPacket sendPacket=new
DatagramPacket(data,data.length,address,port);
//将其发送出去
socket.send(sendPacket);
byte[] recvBuf=new byte[100];
DatagramPacket recvPacket=new DatagramPacket(recvBuf, recvBuf.length);
socket.receive(recvPacket);
String str2=new String(recvPacket.getData(),0,recvPacket.getLength());
System.out.println("服务端说:"+str2);
socket.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args){
Client client=new Client();
client.start();
}
}
上述如果有不对或者补充的地方,请大家批评和指教,谢谢。