[java] DatagramSocket DatagramPacket

来源:互联网 发布:Linux进入根目录的命令 编辑:程序博客网 时间:2024/05/18 20:11

1.DatagramPacket  需要发信息的host和port

package edu.learn.foundation;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;import java.net.UnknownHostException;public class UDPServer implements Runnable {public DatagramSocket datagramSocket;public DatagramPacket datagramPacket;public String info="Hello world";public byte[] buf;public static void main(String[] args) {// TODO 自动生成的方法存根UDPServer server =new UDPServer();Thread serverThread = new Thread(server);serverThread.run();}@Overridepublic void run() {// TODO 自动生成的方法存根try {datagramSocket = new DatagramSocket(8001);buf=info.getBytes();datagramPacket = new DatagramPacket(buf, 0, buf.length);InetAddress iaddr =InetAddress.getLocalHost();datagramPacket.setAddress(iaddr);datagramPacket.setPort(8005);try {datagramSocket.send(datagramPacket);datagramSocket.close();} catch (IOException e) {// TODO 自动生成的 catch 块e.printStackTrace();}} catch (SocketException e) {// TODO 自动生成的 catch 块e.printStackTrace();} catch (UnknownHostException e1) {// TODO 自动生成的 catch 块e1.printStackTrace();}}}

 


package edu.learn.foundation;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.SocketException;public class UDPClient implements Runnable {private DatagramSocket datagramSocket;private DatagramPacket datagramPacket;public static void main(String[] args) {// TODO 自动生成的方法存根System.out.println("接收信息");UDPClient client = new UDPClient();Thread clientThread  = new Thread(client);clientThread.run();}@Overridepublic void run() {// TODO 自动生成的方法存根try {datagramSocket = new DatagramSocket(8005);byte[] buf=new byte[1024];datagramPacket = new DatagramPacket(buf, 1024);try {datagramSocket.receive(datagramPacket);String info=new String(buf);System.out.println(info);datagramSocket.close();} catch (IOException e) {// TODO 自动生成的 catch 块e.printStackTrace();}} catch (SocketException e) {// TODO 自动生成的 catch 块e.printStackTrace();}}}

结果:


接收信息
Hello world

0 0
原创粉丝点击