Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.io.PrintWriter;
- import java.net.InetAddress;
- import java.net.Socket;
- import java.net.UnknownHostException;
- import java.util.Scanner;
- public class UserClient {
- public static final int TCP_PORT = 80; // Le port
- public static void main(String[] args) {
- // We get shit from command line...
- if (args.length == 0) {
- System.out.println("User Client v1.0");
- System.out.println("Usage: UserClient <username> [<hostname>]");
- System.out.println("Params:");
- System.out.println("\t<username> Username to use for login.");
- System.out.println("\t<hostname> Server name; default is localhost\n\n");
- System.exit(0);
- }
- Scanner sc = new Scanner(System.in);
- String hostname = (args.length > 1) ? args[1] : "localhost";
- try {
- InetAddress addr = InetAddress.getByName(hostname);
- // Open le socket
- Socket sock = new Socket(addr, TCP_PORT);
- // Initialize stuff
- BufferedReader in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
- PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(sock.getOutputStream())), true);
- // Send request
- System.out.println("Logging in...");
- boolean temp = true;
- do {
- String request = sc.nextLine(); // args[0];
- out.println(request);
- out.flush();
- // Read response
- String response;
- String list = "";
- while (!(response = in.readLine()).equals("END")) {
- list += response + "\n";
- }
- // if (request.equals("LIST"))
- System.out.println("\nCurrent users:\n");
- System.out.println(list);
- // Close connection
- if (list.contains("Closed")) {
- in.close();
- out.close();
- sock.close();
- temp = false;
- }
- } while(temp);
- } catch (UnknownHostException uhe) {
- uhe.printStackTrace();
- } catch (IOException ioe) {
- ioe.printStackTrace();
- }
- }
- }
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.util.Vector;
- public class UserServer {
- public static final int TCP_PORT = 9000;
- public static void main(String[] args) {
- Vector users = new Vector();
- try {
- ServerSocket ss = new ServerSocket(TCP_PORT);
- System.out.println("Server running...");
- while (true) {
- Socket sock = ss.accept();
- UserServerThread ust = new UserServerThread(sock, users);
- }
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- }
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.io.PrintWriter;
- import java.net.Socket;
- import java.util.StringTokenizer;
- import java.util.Vector;
- public class UserServerThread extends Thread {
- private Socket sock;
- private BufferedReader in;
- private PrintWriter out;
- private Vector records;
- private BufferedReader br;
- private BufferedWriter bw;
- public UserServerThread(Socket sock, Vector records) {
- this.sock = sock;
- this.records = records;
- try {
- // Initialize input stream
- in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
- // Initialize outout stream
- out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(sock.getOutputStream())), true);
- // Start thread
- start();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- public void run() {
- String response = "";
- try {
- // while (true) {
- // Read request
- String request = in.readLine();
- // System.out.println(request);
- // Add to the list
- if (request.startsWith("GET")) {
- response = browserResponse();
- } else {
- // dodaj u listu
- response = clientResponse(request);
- }
- // Send answer
- out.println(response);
- // }
- // Close connection
- in.close();
- out.close();
- sock.close();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- private String clientResponse(String request) throws IOException {
- br = new BufferedReader(new FileReader("knjige.txt"));
- if (request.startsWith("iznad_proseka")) {
- int lineCount = 0;
- int sum = 0;
- int intPriceFromFile = 0;
- Vector<Integer> price_records = new Vector<Integer>(10);
- Vector<String> rec = new Vector<String>(10);
- String s = "";
- double avg = 0;
- while ((s = br.readLine()) != null) {
- lineCount++;
- StringTokenizer fileLine = new StringTokenizer(s, "|");
- String id = fileLine.nextToken(); // ID
- String name = fileLine.nextToken(); // Name
- String auth = fileLine.nextToken(); // Auth
- String stringPriceFromFile = fileLine.nextToken(); // Price
- intPriceFromFile = Integer.parseInt(stringPriceFromFile);
- String recForVector = id + "|" + name + "|" + auth + "|" + stringPriceFromFile;
- rec.add(recForVector);
- price_records.add(intPriceFromFile);
- sum += intPriceFromFile;
- }
- avg = (double)sum/lineCount;
- for (String k: rec) {
- StringTokenizer st = new StringTokenizer(k, "|");
- String id = st.nextToken(); // ID
- String name = st.nextToken(); // Name
- String auth = st.nextToken(); // Auth
- String stringPriceFromFile = st.nextToken(); // Price
- int price = Integer.parseInt(stringPriceFromFile);
- if (price > avg) {
- System.out.println(name);
- }
- }
- }
- else if (request.startsWith("update")) {
- String retVal = "";
- StringTokenizer st = new StringTokenizer(request);
- String command = st.nextToken(); // Command
- String newReq = st.nextToken(); // The rest...
- StringTokenizer newSt = new StringTokenizer(newReq, "|");
- String s = "";
- String id = newSt.nextToken();
- String name = newSt.nextToken();
- String author = newSt.nextToken();
- String price = newSt.nextToken();
- String updateRecord = id + "|" + name + "|" + author + "|" + price;
- boolean idNotExist = true;
- records.clear();
- while ((s = br.readLine()) != null) {
- System.out.println(s + "\n");
- StringTokenizer fileLine = new StringTokenizer(s, "|");
- String idFromFile = fileLine.nextToken();
- if (id.equals(idFromFile)) {
- records.add(updateRecord);
- idNotExist = false;
- }
- else
- records.add(s);
- }
- if (idNotExist) {
- return "ID does not exists! \nEND";
- }
- else
- return saveDat(records) ? "Successful updated!\nEND" : "Not successful updated\nEND";
- }
- return "";
- }
- private boolean saveDat(Vector records) {
- try {
- bw = new BufferedWriter(new FileWriter("knjige.txt"));
- for (int i = 0; i < records.size(); i++) {
- String us = (String)records.elementAt(i);
- System.out.println(records.size());
- bw.write(us);
- bw.newLine();
- }
- bw.close();
- return true;
- } catch (IOException ioe) {
- ioe.printStackTrace();
- }
- return false;
- }
- /**
- * Generisanje odgovora za web browser
- */
- private String browserResponse() {
- String retVal = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n";
- retVal += "<html><head><title>Prijavljeni korisnici</title></head>\n";
- retVal += "<body><h1>Prijavljeni korisnici</h1><ol>\n";
- for (int i = 0; i < records.size(); i++) {
- String user = (String)records.elementAt(i);
- retVal += "<li>" + user + "</li>\n";
- }
- retVal += "</ol></body></html>\n";
- return retVal;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment