Socket:
Socket就是为网络服务提供的一种机制
通信的两端都有Socket
网络通信其实就是Socket间的通信
数据是在俩个Socket间通过IO传输
UDP传输:
DatagramSocket与DatagramPacket
建立发送端,接收端
建立数据包
调用Socket的发送与接收方法
关闭Socket
UDP发送与接收数据示例代码:
public static void sendDataByUdp() throws IOException{
System.out.println("send start");
DatagramSocket ds = new DatagramSocket();
String str = "upd协议发送数据";
byte[] buff = str.getBytes();
InetAddress ip = InetAddress.getLocalHost();
//构造数据包,指定发送的数据、数据长度、Ip对象、端口
DatagramPacket dp = new DatagramPacket(buff,buff.length,ip,10000);
ds.send(dp);
ds.close();
System.out.println("send end");
}
public static void receDataByUdp() throws IOException{
System.out.println("receive start");
DatagramSocket ds = new DatagramSocket(10000);//指定要接收数据包的端口
byte[] buff = new byte[1024];
DatagramPacket dp = new DatagramPacket(buff,1024);
ds.receive(dp);
System.out.println("ip:"+dp.getAddress().getHostAddress() +" 端口:"+dp.getPort()+" 数据:" +new String(dp.getData(),0,dp.getLength()) );
ds.close();
System.out.println("receive end");
}