Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.net.DatagramPacket;
- import java.net.DatagramSocket;
- import java.net.InetAddress;
- import java.net.SocketException;
- import java.net.UnknownHostException;
- public class Main {
- public static void main(String[] args) {
- startServer(Integer.parseInt(args[0]));
- startClient(Integer.parseInt(args[0]), args[1]);
- }
- private static void startServer(final int port) {
- (new Thread() {
- private DatagramSocket serverSocket;
- private String message="";
- byte[] receiveData = new byte[1024];
- byte[] sendData = new byte[1024];
- @Override
- public void run() {
- System.out.println("START SERVER on [" + port + "] port");
- try {
- serverSocket = new DatagramSocket(port);
- while(true) {
- receiveData = new byte[1024];
- sendData = new byte[1024];
- DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
- serverSocket.receive(receivePacket);
- message = new String(receivePacket.getData());
- System.out.println(" [received] " + message);
- InetAddress IPAddress = receivePacket.getAddress();
- int port = receivePacket.getPort();
- String capitalizedSentence = message.toUpperCase();
- sendData = capitalizedSentence.getBytes();
- DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
- serverSocket.send(sendPacket);
- }
- }
- catch (SocketException se) {
- se.printStackTrace();
- }
- catch (UnknownHostException uhe) {
- uhe.printStackTrace();
- }
- catch (IOException ioe) {
- ioe.printStackTrace();
- }
- }
- }).start();
- }
- private static void startClient(final int port, final String host) {
- (new Thread() {
- String name;
- String message;
- private DatagramSocket clientSocket;
- byte[] sendData = new byte[1024];
- byte[] receiveData = new byte[1024];
- @Override
- public void run() {
- System.out.println("CLIENT CONNECTED on [" + port + "] port [" + host + "] host");
- boolean run = true;
- while(run) {
- sendData = new byte[1024];
- receiveData = new byte[1024];
- try {
- System.out.print("Enter message: ");
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- message = reader.readLine();
- if(message.charAt(0) == '@') {
- if(message.equals("@quit"))
- run = false;
- if(message.startsWith("@name"))
- setClientName(message.substring(6, message.length()));
- }
- if(name!=null) {
- message = name + " say: " + message;
- }
- clientSocket = new DatagramSocket();
- InetAddress ipAddress = InetAddress.getByName(host);
- sendData = message.getBytes();
- DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, ipAddress, port);
- clientSocket.send(sendPacket);
- DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
- clientSocket.receive(receivePacket);
- message = new String(receivePacket.getData());
- System.out.println(" [from server] " + message);
- clientSocket.close();
- }
- catch (SocketException se) {
- se.printStackTrace();
- }
- catch (UnknownHostException uhe) {
- uhe.printStackTrace();
- }
- catch (IOException ioe) {
- ioe.printStackTrace();
- }
- }
- System.out.println("CLIENT DISCONNECTED...");
- }
- public void setClientName(String name) {
- this.name = name;
- }
- }).start();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement