例子1:
package add.socket.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* @author niusj
* 先启动2 再启动1
*/
public class UdpUnit1 {
public static void main(String[] args) throws IOException{
//发送数据
DatagramSocket datagramSocket = new DatagramSocket();
String str = "Hello World!";
String localAddr = InetAddress.getByName("localhost").toString();
System.out.println(localAddr);
// 用了public DatagramPacket(byte buf[], int length,InetAddress address,int port)形式
DatagramPacket packet = new DatagramPacket(
str.getBytes(), str.length(), InetAddress.getByName("localhost"), 7000);
datagramSocket.send(packet);
//接收数据
byte[] buffer = new byte[1024];
DatagramPacket packet2 = new DatagramPacket(buffer, 100);
datagramSocket.receive(packet2);
System.out.println(new String(buffer, 0, packet2.getLength()));
datagramSocket.close();
}
}
package add.socket.udp;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UdpUnit2 {
public static void main(String[] args) throws Exception {
DatagramSocket socket = new DatagramSocket(7000);
//收信息
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, 1024);
socket.receive(packet);
System.out.println(new String(buffer, 0, packet.getLength()));
//返回信息
String str = "welcome!";
DatagramPacket packet2 = new DatagramPacket(str.getBytes(),
str.length(), packet.getAddress(), packet.getPort());
socket.send(packet2);
socket.close();
}
}