Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import java.util.Random;
- class Packet extends Thread{
- final static int MAX_CONTENT_SIZE = 4;
- String from, to;
- String content;
- int packetNo;
- boolean end;
- Receiver r;
- public Packet(String from, String to, String content, int packetNo, boolean end, Receiver r) {
- this.from = from;
- this.to = to;
- this.content = content;
- this.packetNo = packetNo;
- this.end = end;
- this.r = r;
- start();
- }
- @Override
- public void run() {
- super.run();
- try {
- Random rnd = new Random();
- Thread.sleep(rnd.nextInt(51));
- if (!content.equals("")){
- //System.out.println(this);
- }
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- try {
- r.recieve(this);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- //System.out.println(this + " som dead");
- }
- @Override
- public String toString() {
- return from + "->" + to + ": " + content + "(" + packetNo + ")";
- }
- }
- class Receiver {
- private List<Packet> list = new ArrayList<>();
- int i = 0;
- public void recieve(Packet packet) throws InterruptedException {
- System.out.println(packet);
- }
- }
- class Sender {
- Receiver r;
- public Sender(Receiver r) {
- this.r = r;
- }
- public void send(String from, String to, String msg) throws InterruptedException {
- List<Packet> list = new ArrayList<>();
- for (int i = 0; i < msg.length()/Packet.MAX_CONTENT_SIZE; i++) {
- 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));
- }
- 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));
- for (int i = 0; i < list.size(); i++) {
- list.get(i).join();
- }
- }
- }
- public class TCPThreads {
- public static void main(String[] args) throws InterruptedException {
- Receiver r = new Receiver();
- Sender s = new Sender(r);
- s.send("A", "B", "Ahoj");
- s.send("B", "A", "Nazdar");
- s.send("A", "B", "Tie streamy na midterme sme necakali, co");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement