Skip to content
Snippets Groups Projects
Commit 402b4546 authored by maitp2's avatar maitp2
Browse files

Merge branch 'connect_vm' into 'main'

Establish connection between multiple VMs

See merge request trangtd2/cs425_mp1!1
parents e9997a90 86531678
Branches test
No related tags found
No related merge requests found
Showing
with 211 additions and 8 deletions
fa22-cs425-5202.cs.illinois.edu 5000 d.log
fa22-cs425-5203.cs.illinois.edu 5000 e.log
fa22-cs425-5204.cs.illinois.edu 5000 e.log
\ No newline at end of file
File added
File added
pom.xml 0 → 100644
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>groupId</groupId>
<artifactId>grep</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>net.sourceforge.argparse4j</groupId>
<artifactId>argparse4j</artifactId>
<version>0.2.0</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package cs425.mp1;
public class Main {
public static void main(String[] args) {
// write your code here
}
}
Manifest-Version: 1.0
Main-Class: cs425.mp1.Client
package cs425.mp1;
import net.sourceforge.argparse4j.ArgumentParsers;
import net.sourceforge.argparse4j.inf.ArgumentParser;
import net.sourceforge.argparse4j.inf.ArgumentParserException;
import net.sourceforge.argparse4j.inf.Namespace;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class Client {
public static void main(String[] args) throws IOException {
ArgumentParser parser = ArgumentParsers.newArgumentParser("Client")
.defaultHelp(true)
.description("Run distributed grep.");
parser.addArgument("-cf","--configFile").nargs("?")
.help("Path of the config file containing list of host and its port");
Namespace ns = null;
try {
ns = parser.parseArgs(args);
} catch (ArgumentParserException e) {
parser.handleError(e);
System.exit(1);
}
FileReader file = new FileReader(ns.getString("configFile"));
BufferedReader reader = new BufferedReader(file);
ArrayList<String> servers = new ArrayList<>();
ArrayList<Integer> ports = new ArrayList<>();
ArrayList<String> logFiles = new ArrayList<>();
String line;
while (true) {
line = reader.readLine();
if (line != null) {
String[] s = line.split(" ");
servers.add(s[0].trim());
ports.add(Integer.parseInt(s[1].trim()));
logFiles.add(s[2].trim());
} else {
break;
}
}
int n = servers.size();
ArrayList<GrepThread> threads = new ArrayList<>(n);
for (int i = 0; i < n; i++) {
GrepThread t = new GrepThread(servers.get(i), ports.get(i), logFiles.get(i));
threads.add(t);
t.start();
}
for (GrepThread t: threads) {
try {
t.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
package cs425.mp1;
import java.io.IOException;
import java.net.Socket;
public class GrepThread extends Thread{
private final String host;
private final int port;
private final String logFile;
public GrepThread(String host, int port, String logFile){
this.host = host;
this.port = port;
this.logFile = logFile;
}
@Override
public void run() {
try {
Socket socket = new Socket(host, port);
System.out.println("Connected to server");
} catch(IOException u) {
u.printStackTrace();
}
}
}
package cs425.mp1;
import net.sourceforge.argparse4j.ArgumentParsers;
import net.sourceforge.argparse4j.inf.ArgumentParser;
import net.sourceforge.argparse4j.inf.ArgumentParserException;
import net.sourceforge.argparse4j.inf.Namespace;
public class Main {
public static void main(String[] args) {
ArgumentParser parser = ArgumentParsers.newArgumentParser("Main")
.defaultHelp(true)
.description("Run grep server.");
parser.addArgument("-p","--port").nargs("?")
.setDefault(5000)
.help("Port to run server");
Namespace ns = null;
try {
ns = parser.parseArgs(args);
} catch (ArgumentParserException e) {
parser.handleError(e);
System.exit(1);
}
int port = Integer.parseInt(ns.getString("port"));
Server server = new Server(port);
}
}
package cs425.mp1;
import java.io.*;
import java.net.*;
public class Server {
private int port;
private Socket socket = null;
private ServerSocket server = null;
public Server(int port) {
this.port = port;
try {
server = new ServerSocket(port);
System.out.println("Server start listening on port "+ port);
socket = server.accept();
System.out.println("Client connected");
} catch(IOException e) {
e.printStackTrace();
}
// DataInputStream in = null;
// try {
// in = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
// } catch (IOException e) {
// e.printStackTrace();
// }
//
// String line = "";
//
// // reads message from client until "Over" is sent
// while (!line.equals("Over"))
// {
// try
// {
// line = in.readUTF();
// System.out.println(line);
//
// }
// catch(IOException i)
// {
// System.out.println(i);
// }
// }
// System.out.println("Closing connection");
}
public void close() throws IOException {
if (socket != null) {
socket.close();
}
}
}
File added
File added
File added
File added
File added
#Generated by Maven
#Mon Sep 05 17:28:50 CDT 2022
version=1.0-SNAPSHOT
groupId=groupId
artifactId=grep
/home/maipham/uiuc/cs425/mp1/grep/src/main/java/cs425/mp1/Client.java
/home/maipham/uiuc/cs425/mp1/grep/src/main/java/cs425/mp1/Server.java
/home/maipham/uiuc/cs425/mp1/grep/src/main/java/cs425/mp1/GrepThread.java
/home/maipham/uiuc/cs425/mp1/grep/src/main/java/cs425/mp1/Main.java
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment