Advertisement
Guest User

Untitled

a guest
Apr 25th, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.List;
  4. import java.util.Random;
  5.  
  6. class Packet extends Thread{
  7.  
  8. final static int MAX_CONTENT_SIZE = 4;
  9.  
  10. String from, to;
  11. String content;
  12. int packetNo;
  13. boolean end;
  14. Receiver r;
  15.  
  16. public Packet(String from, String to, String content, int packetNo, boolean end, Receiver r) {
  17. this.from = from;
  18. this.to = to;
  19. this.content = content;
  20. this.packetNo = packetNo;
  21. this.end = end;
  22. this.r = r;
  23. start();
  24. }
  25.  
  26. @Override
  27. public void run() {
  28. super.run();
  29. try {
  30. Random rnd = new Random();
  31. Thread.sleep(rnd.nextInt(51));
  32. if (!content.equals("")){
  33. //System.out.println(this);
  34. }
  35. } catch (InterruptedException e) {
  36. e.printStackTrace();
  37. }
  38. try {
  39. r.recieve(this);
  40. } catch (InterruptedException e) {
  41. e.printStackTrace();
  42. }
  43. //System.out.println(this + " som dead");
  44. }
  45.  
  46. @Override
  47. public String toString() {
  48. return from + "->" + to + ": " + content + "(" + packetNo + ")";
  49. }
  50.  
  51.  
  52. }
  53.  
  54. class Receiver {
  55. private List<Packet> list = new ArrayList<>();
  56. int i = 0;
  57.  
  58. public void recieve(Packet packet) throws InterruptedException {
  59. System.out.println(packet);
  60. }
  61.  
  62.  
  63. }
  64.  
  65. class Sender {
  66.  
  67. Receiver r;
  68.  
  69. public Sender(Receiver r) {
  70. this.r = r;
  71. }
  72.  
  73. public void send(String from, String to, String msg) throws InterruptedException {
  74. List<Packet> list = new ArrayList<>();
  75. for (int i = 0; i < msg.length()/Packet.MAX_CONTENT_SIZE; i++) {
  76. list.add(new Packet(from, to, msg.substring(i * Packet.MAX_CONTENT_SIZE, (i * Packet.MAX_CONTENT_SIZE) + Packet.MAX_CONTENT_SIZE), i, false, r));
  77. }
  78. list.add(new Packet(from, to, msg.substring(msg.length()/ Packet.MAX_CONTENT_SIZE * Packet.MAX_CONTENT_SIZE), msg.length()/ Packet.MAX_CONTENT_SIZE, true, r));
  79. for (int i = 0; i < list.size(); i++) {
  80. list.get(i).join();
  81. }
  82. }
  83. }
  84.  
  85. public class TCPThreads {
  86.  
  87. public static void main(String[] args) throws InterruptedException {
  88. Receiver r = new Receiver();
  89. Sender s = new Sender(r);
  90.  
  91. s.send("A", "B", "Ahoj");
  92. s.send("B", "A", "Nazdar");
  93. s.send("A", "B", "Tie streamy na midterme sme necakali, co");
  94. }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement