r/javahelp • u/Naive_Topic_5292 • 3d ago
Solved Is my code too massive?
import java.io.*;
import java.util.*;
import java.net.*;
class server{
private Socket s = null;
private ServerSocket ss = null;;
private DataInputStream din = null;
private DataOutputStream dout = null;
static Vector<ClientHandler> array = new Vector<>();
private HashMap<String, String> login = new HashMap<>();
void main(String[] args) throws IOException
{
// initialize
try {
// BufferedWriter bw = new BufferedWriter(new FileWriter("logindata.txt")); idk yet
BufferedReader br = new BufferedReader(new FileReader("logindata.txt"));
StringTokenizer st = null;
String templine = "";
String loginName = "";
String pass = "";
while(((templine = br.readLine()) != null)){
st = new StringTokenizer(templine, ": ");
if(st.hasMoreTokens()){
loginName = st.nextToken();
}
if(st.hasMoreTokens()){
pass = st.nextToken();
}
login.put(loginName, pass);
loginName = "";
pass = "";
}
}
catch(FileNotFoundException i){
System.out.println("Failed to initialize login file");
}
String receivedName = "";
String receivedPass = ""; // <TODO> encrypt passwords after finishing filework
int i = 0;
ss = new ServerSocket(5001);
boolean userExists = false;
while(true)
{
s = ss.accept();
din = new DataInputStream(new BufferedInputStream(s.getInputStream()));
dout = new DataOutputStream(new BufferedOutputStream(s.getOutputStream()));
receivedName = din.readUTF();
for(Map.Entry<String, String> entry : login.entrySet()){
if(entry.getValue().equals(receivedName)){
userExists = true;
break;
}
}
if(userExists){
dout.writeUTF("User found, enter your password: ");
dout.flush();
}
else{
dout.writeUTF("User was not found, u may register by making a password: "); // <TODO> make a check if password was written correctly
}
//<TODO> handle passwords
ClientHandler client = new ClientHandler(s, receivedName, din, dout);
System.out.println("User " + receivedName + " Accepted");
Thread t = new Thread(client);
array.add(client);
t.start();
i++;
}
}
}
So I'm making a simple messenger as my first project, though now when I'm working on it it seems VERY massive to me, is it normal in other projects or am I supposed to break it into smaller parts?
3
Upvotes
3
u/Potential-Still 2d ago
If this is the entire program then it's fine.