UDP网络编程
package tcpudp; import java.net.*; import java.io.*; public class UDPClient{ public static void main(String args[]){ // args give message contents and destination hostname System.out.println("UDP Client starting, please enter: "); DatagramSocket aSocket = null; BufferedReader br = new BufferedReader(new InputStreamReader(System.in));//接受控制台信息 String line = null; try { while((line = br.readLine())!=null){ aSocket = new DatagramSocket(); if("bye".equals(line)) break; byte[] m = line.getBytes();//字节数组 DatagramPacket request = new DatagramPacket(m, m.length, InetAddress.getByName("127.0.0.1"),33333); aSocket.send(request); } }catch (SocketException e){ System.out.println("Socket: " + e.getMessage()); }catch (IOException e){ System.out.println("IO: " + e.getMessage()); }finally{ if(aSocket != null) aSocket.close(); } } }
package tcpudp; import java.net.*; import java.io.*; public class UDPServer{ public static void main(String args[]){ System.out.println("UDP server starting, wait...."); //接受 DatagramSocket aSocket = null; try{ aSocket = new DatagramSocket(33333); // create socket at agreed port byte[] buffer = new byte[1024]; while(true){ DatagramPacket request = new DatagramPacket(buffer, buffer.length); aSocket.receive(request); String data = new String(request.getData(),0,request.getLength()); String ip = request.getAddress().getHostAddress(); if("bye".equals(data)) break; System.out.println(ip+":"+data); } }catch (SocketException e){ System.out.println("Socket: " + e.getMessage()); }catch (IOException e) { System.out.println("IO: " + e.getMessage()); }finally { aSocket.close(); } } }