Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package myWhats;
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.OutputStreamWriter;
- import java.io.PrintWriter;
- import java.io.Writer;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.util.Scanner;
- //Servidor do servi�o myWhatsServer
- public class myWhatsServer{
- public static void main(String[] args) {
- System.out.println("servidor: main");
- myWhatsServer server = new myWhatsServer();
- server.startServer();
- }
- public void startServer (){
- ServerSocket sSoc = null;
- try {
- sSoc = new ServerSocket(23456);
- } catch (IOException e) {
- System.err.println(e.getMessage());
- System.exit(-1);
- }
- while(true) {
- try {
- Socket inSoc = sSoc.accept(); //listen
- ServerThread newServerThread = new ServerThread(inSoc);
- newServerThread.start(); //inicializaçao da thread
- }
- catch (IOException e) {
- try {
- sSoc.close();
- break;
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- e.printStackTrace();
- }
- }
- //sSoc.close();
- }
- //Threads utilizadas para comunica��o com os clientes
- class ServerThread extends Thread {
- private Socket socket = null;
- ServerThread(Socket inSoc) {
- socket = inSoc;
- System.out.println("thread do server para cada cliente");
- }
- public void run(){
- try {
- ObjectOutputStream outStream = new ObjectOutputStream(socket.getOutputStream());
- ObjectInputStream inStream = new ObjectInputStream(socket.getInputStream());
- String recebido = null;
- String user = null;
- String passwd = null;
- String[] resto =null;
- File log = new File ("passwords.txt");
- String proxima = null;
- Boolean bool = false;
- try {
- recebido = (String) inStream.readObject();
- int it = 0;
- resto = recebido.split(" ");
- user= resto[0];
- passwd= resto[1];
- System.out.println("thread: depois de receber a password e o user");
- if(!log.exists()){
- System.out.println("novo ficheiro de pass");
- log.createNewFile();
- }
- PrintWriter out = new PrintWriter(new FileWriter(log, true));
- Scanner sc = new Scanner (log);
- if(sc.hasNextLine()){
- proxima = sc.next();
- while(proxima != null){
- String[] userPass = proxima.split(":",2);
- if(userPass[0].equals(user)){
- if(userPass[1].equals(passwd)){
- System.out.println("Login Correcto");
- bool=true;
- break;
- }else{
- System.out.println("Password Incorrecta");
- outStream.writeObject(new Boolean(false));
- }
- }
- proxima= sc.nextLine();
- }
- }
- if(!bool){
- out.write(user+":"+ passwd + '\n');
- System.out.println("Novo User Registado");
- }
- }catch (ClassNotFoundException e1) {
- e1.printStackTrace();
- }
- switch (resto[2]){
- case "-m":
- break;
- case "-r":
- break;
- case "-a":
- break;
- case "-d":
- break;
- case "-f":
- break;
- default:
- break;
- }
- //TODO: refazer
- //este c�digo apenas exemplifica a comunica��o entre o cliente e o servidor
- //n�o faz qualquer tipo de autentica��o
- if (user.length() != 0){
- outStream.writeObject(new Boolean(true));
- }
- else {
- outStream.writeObject(new Boolean(false));
- }
- outStream.close();
- inStream.close();
- socket.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement