Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions RR-anotherversion
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import java.net.*;
import java.util.LinkedList;

public class RoundRobin {
private static LinkedList<Socket> servers = new LinkedList<>();

public static void main(String[] args) {
try {
for (int i = 0; i < args.length; i += 2) {
servers.add(new Socket(args[i], Integer.parseInt(args[i + 1])));
}

ServerSocket serverSocket = new ServerSocket(5500);

while (true) {
Socket conn = serverSocket.accept();
Socket selected = selectServer();
processRequest(conn, selected);
}

} catch (IOException e) {
System.err.println(e.getMessage());
} finally {
closeConnections();
}
}

private static synchronized Socket selectServer() {
Socket server = servers.poll();
servers.add(server);
return server;
}

private static void processRequest(Socket client, Socket server) throws IOException {
try {
InputStream in = client.getInputStream();
OutputStream out = client.getOutputStream();
DataInputStream din = new DataInputStream(in);
DataOutputStream dout = new DataOutputStream(server.getOutputStream());

// Read data from client and send it to server
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = in.read(buffer)) != -1) {
dout.write(buffer, 0, bytesRead);
dout.flush();
}

// Read response from server and send it back to client
buffer = new byte[1024];
bytesRead = server.getInputStream().read(buffer);
if (bytesRead > 0) {
out.write(buffer, 0, bytesRead);
out.flush();
}

} finally {
client.close();
}
}

private static void closeConnections() {
try {
for (Socket server : servers) {
server.close();
}
} catch (IOException e) {
System.err.println(e.getMessage());
}
}
}
101 changes: 50 additions & 51 deletions roundrobin.java
Original file line number Diff line number Diff line change
@@ -1,51 +1,50 @@
package com.myfirstjava.program;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.LinkedList;

public class roundrobin {
//public static Socket[] servers = new Socket [3];
public static int server_index = 0;
public static void main(String args[]) {
LinkedList<Socket> s = new LinkedList<Socket>();
try {
int portNumber = 5500;
ServerSocket serverSocket = new ServerSocket(portNumber);
Socket conn = serverSocket.accept();

InputStream in = conn.getInputStream();
OutputStream out = conn.getOutputStream();
DataInputStream din=new DataInputStream(in);
DataOutputStream dout=new DataOutputStream(out);

s.add(new Socket("127.0.0.1",12345));
s.add(new Socket("127.0.0.1",5000));
s.add(new Socket("127.0.0.1",4040));

server_index++;
if (server_index >= s.size()) {
server_index = 0;
}
Socket selected = s.get(server_index);

//selected.out.writeInt(32);


/*for (int i = 0; s.size() <= 3; i++) {
Socket ser = s.get(i);
servers[i] = ser;
}*/
//System.out.println(s.size());
// System.out.println(servers);
//create linkedlist to store the connections other servers
//list.add(new Socket(!ip","port")
//BufferedInputStream bin=new BufferedInputStream(in);
//BufferedReader br = new BufferedReader(isr);
}catch (Exception e) {
System.err.println(e.getMessage());
}
}
}

package com.myfirstjava.program;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.LinkedList;

public class roundrobin {
//public static Socket[] servers = new Socket [3];
public static int server_index = 0;
public static void main(String args[]) {
LinkedList<Socket> s = new LinkedList<Socket>();
try {
int portNumber = 5500;
ServerSocket serverSocket = new ServerSocket(portNumber);
Socket conn = serverSocket.accept();

InputStream in = conn.getInputStream();
OutputStream out = conn.getOutputStream();
DataInputStream din=new DataInputStream(in);
DataOutputStream dout=new DataOutputStream(out);

s.add(new Socket("127.0.0.1",12345));
s.add(new Socket("127.0.0.1",5000));
s.add(new Socket("127.0.0.1",4040));

server_index++;
if (server_index >= s.size()) {
server_index = 0;
}
Socket selected = s.get(server_index);

//selected.out.writeInt(32);


/*for (int i = 0; s.size() <= 3; i++) {
Socket ser = s.get(i);
servers[i] = ser;
}*/
//System.out.println(s.size());
// System.out.println(servers);
//create linkedlist to store the connections other servers
//list.add(new Socket(!ip","port")
//BufferedInputStream bin=new BufferedInputStream(in);
//BufferedReader br = new BufferedReader(isr);
}catch (Exception e) {
System.err.println(e.getMessage());
}
}
}