Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net;
- import handlers.PersonHelper;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.Serializable;
- import java.net.ConnectException;
- import java.net.InetAddress;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.net.UnknownHostException;
- import java.sql.SQLException;
- import java.util.HashMap;
- import javax.naming.InvalidNameException;
- import main.ServerApplication;
- import model.Person;
- public class ServerConnection extends Thread{
- public static HashMap<Person, Socket> activePerson = new HashMap<Person, Socket>();
- private ObjectOutputStream oos;
- private ObjectInputStream outputStream;
- public int port = 4444;
- private ServerSocket server = null;
- private Socket socket = null;
- private LoginHandler loginHandler = null;
- public ServerConnection(int port){
- System.out.println(getIPv4Address());
- this.port = port;
- }
- public HashMap<Person, Socket> getList(){
- return activePerson;
- }
- public void run(){
- try {
- server = new ServerSocket(port);
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- while(true)
- {
- try
- {
- socket = server.accept();
- if (socket == null) continue;
- System.out.println("Someone tried to connect");
- String username = (String)this.receive();
- String password = (String)this.receive();
- if (!loginHandler.isValidLogin(username, password)) {
- sendObject(null);
- System.out.println("Wrong password. Disconnecting...");
- socket.close();
- } else {
- sendObject(PersonHelper.getPersonFromName(username, ServerApplication.db.getConnection()));
- System.out.println(username + " logged in with password " + password);
- }
- }
- catch (IOException e)
- {
- try {
- socket.close();
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- System.out.println("----- Something went wrong, login denied");
- } catch (InvalidNameException e) {
- } catch (SQLException e) {
- }
- //activePerson.put((Person)receive(), socket);
- ReceiveWorker cliThread = new ReceiveWorker(socket);
- cliThread.start();
- System.out.println("New thread started");
- //Frå klienten sender ein Personen som er tilkopla først.
- }
- }
- private String getIPv4Address() {
- try {
- return InetAddress.getLocalHost().getHostAddress();
- }
- catch (UnknownHostException e) {
- return "127.0.0.1";
- }
- }
- public int randomPort()
- {
- int port = (int)(Math.random() *2000) + 5000;
- int i = 1;
- while(i == 0){
- port = (int)(Math.random() *2000) + 5000;
- }
- return port;
- }
- public void close(){
- try {
- oos.close();
- outputStream.close();
- } catch (IOException e) {
- //CRASH, ferdig.
- }
- }
- public boolean send(Serializable obj){
- try {
- oos = new ObjectOutputStream(socket.getOutputStream());
- oos.writeObject(obj);
- } catch (Exception e) {
- return false;
- }
- return true;
- }
- public static void main(String[] args) {
- new ServerConnection(444);
- }
- public Serializable receive(){
- Serializable obj= null;
- ObjectInputStream inputstream;
- try {
- outputStream = new ObjectInputStream(socket.getInputStream());
- obj = (Serializable)outputStream.readObject();
- } catch (Exception e) {
- //e.printStackTrace();
- //return receive();
- }
- return obj;
- }
- public void setLoginHandler(LoginHandler l){
- this.loginHandler = l;
- }
- public void sendObject(Object o){
- try {
- oos = new ObjectOutputStream(socket.getOutputStream() );
- oos.writeObject(o);
- } catch (Exception e) {
- System.out.println("Couldnt send objec" + o.toString());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement