Client:
import java.io.*; import java.net.*; public class UDPClient { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); DatagramSocket client = new DatagramSocket(); InetAddress addr = InetAddress.getByName("127.0.0.1"); int port = 6666; String s = null; String r = null; byte[] buf = new byte[256]; while ( ( s = in.readLine() ) != null ) { if ( s.equals("bye") ) break; buf = s.getBytes(); DatagramPacket sendPacket = new DatagramPacket(buf, buf.length, addr, port); client.send(sendPacket); DatagramPacket recvPacket = new DatagramPacket(buf, buf.length); client.receive(recvPacket); r = new String(recvPacket.getData(), 0, recvPacket.getLength()); System.out.println("Server : " + r); } client.close(); } }
ServerThread:
import java.io.*; import java.net.*; public class UDPServerThread extends Thread { protected DatagramSocket server = null; public UDPServerThread() throws IOException { server = new DatagramSocket(6666); } public void run() { while ( true ) { try { byte[] buf = new byte[256]; DatagramPacket recvPacket = new DatagramPacket(buf, buf.length); server.receive(recvPacket); String r = null; String s = null; r = new String(recvPacket.getData(), 0, recvPacket.getLength()); s = r.toUpperCase(); buf = s.getBytes(); InetAddress addr = recvPacket.getAddress(); int port = recvPacket.getPort(); DatagramPacket sendPacket = new DatagramPacket(buf, buf.length, addr, port); server.send(sendPacket); } catch ( IOException e ) { e.printStackTrace(); server.close(); } } } }
Server:
import java.io.*; import java.net.*; public class UDPServer { public static void main(String[] args) throws IOException { new UDPServerThread().start(); } }