Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.22 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.net.DatagramPacket;
  5. import java.net.DatagramSocket;
  6. import java.net.InetAddress;
  7. import java.net.SocketException;
  8. import java.net.UnknownHostException;
  9.  
  10. public class Main {
  11.  
  12. public static void main(String[] args) {
  13. startServer(Integer.parseInt(args[0]));
  14. startClient(Integer.parseInt(args[0]), args[1]);
  15. }
  16.  
  17.  
  18.  
  19.  
  20. private static void startServer(final int port) {
  21. (new Thread() {
  22. private DatagramSocket serverSocket;
  23. private String message="";
  24. byte[] receiveData = new byte[1024];
  25. byte[] sendData = new byte[1024];
  26.  
  27. @Override
  28. public void run() {
  29. System.out.println("START SERVER on [" + port + "] port");
  30. try {
  31. serverSocket = new DatagramSocket(port);
  32. while(true) {
  33. receiveData = new byte[1024];
  34. sendData = new byte[1024];
  35. DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
  36. serverSocket.receive(receivePacket);
  37. message = new String(receivePacket.getData());
  38. System.out.println(" [received] " + message);
  39. InetAddress IPAddress = receivePacket.getAddress();
  40. int port = receivePacket.getPort();
  41. String capitalizedSentence = message.toUpperCase();
  42. sendData = capitalizedSentence.getBytes();
  43. DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
  44. serverSocket.send(sendPacket);
  45. }
  46. }
  47. catch (SocketException se) {
  48. se.printStackTrace();
  49. }
  50. catch (UnknownHostException uhe) {
  51. uhe.printStackTrace();
  52. }
  53. catch (IOException ioe) {
  54. ioe.printStackTrace();
  55. }
  56. }
  57. }).start();
  58. }
  59.  
  60.  
  61.  
  62.  
  63.  
  64. private static void startClient(final int port, final String host) {
  65. (new Thread() {
  66. String name;
  67. String message;
  68. private DatagramSocket clientSocket;
  69. byte[] sendData = new byte[1024];
  70. byte[] receiveData = new byte[1024];
  71.  
  72. @Override
  73. public void run() {
  74. System.out.println("CLIENT CONNECTED on [" + port + "] port [" + host + "] host");
  75. boolean run = true;
  76. while(run) {
  77. sendData = new byte[1024];
  78. receiveData = new byte[1024];
  79. try {
  80. System.out.print("Enter message: ");
  81. BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  82. message = reader.readLine();
  83. if(message.charAt(0) == '@') {
  84. if(message.equals("@quit"))
  85. run = false;
  86. if(message.startsWith("@name"))
  87. setClientName(message.substring(6, message.length()));
  88. }
  89. if(name!=null) {
  90. message = name + " say: " + message;
  91. }
  92. clientSocket = new DatagramSocket();
  93. InetAddress ipAddress = InetAddress.getByName(host);
  94. sendData = message.getBytes();
  95. DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, ipAddress, port);
  96. clientSocket.send(sendPacket);
  97. DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
  98. clientSocket.receive(receivePacket);
  99. message = new String(receivePacket.getData());
  100. System.out.println(" [from server] " + message);
  101. clientSocket.close();
  102. }
  103. catch (SocketException se) {
  104. se.printStackTrace();
  105. }
  106. catch (UnknownHostException uhe) {
  107. uhe.printStackTrace();
  108. }
  109. catch (IOException ioe) {
  110. ioe.printStackTrace();
  111. }
  112. }
  113. System.out.println("CLIENT DISCONNECTED...");
  114. }
  115.  
  116. public void setClientName(String name) {
  117. this.name = name;
  118. }
  119. }).start();
  120. }
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement