IT/JAVA프로젝트2016.09.30 11:04

package com.pcbang.control;

import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.ArrayList;

import com.pcbang.model.MemberData;

public class TcpIpServer extends Thread
{
 HashMap<Integer, ObjectOutputStream> clients; //hashmap : input key -> get value : getting value speed is fast, but week integrity on multiple thread
 //integrity -> key -> unique number
 //if there 2 or more same key, integrity will dispose
 //TreeMap(stack queue List Tree Set Map Hash) <- strong integrity but get speed is slow
 String testId ="park";
 
 MemberData data = new MemberData();
 ArrayList<MemberData> member;
 DBControlForMemberData db = new DBControlForMemberData();
 
 int port;
 InetAddress ip;

 public TcpIpServer()
 {
  clients = new HashMap<Integer, ObjectOutputStream>();
  Collections.synchronizedMap(clients); //synchronuzedMap() -> protect integrity on multiple thread

 }
 
 public void serverStart() throws IOException
 {
  
  ServerSocket server = null;
  Socket socket = null;
  server = new ServerSocket(5000);
  System.out.println("Server Ready");
 
 
  while(true)
  {
   socket = server.accept();  //accept() <- return socket that connect to server
   System.out.println("Ipaddress : " + socket.getInetAddress()); //print ipaddress of client that connected to server
   System.out.println("Port : " + socket.getPort());
   port = socket.getPort();
   ip = socket.getInetAddress();
   
    
   new ServerReciver(socket).start(); //get message and send to reciver(+1 thread)
  }
 
 }
 
 class ServerReciver extends Thread
 {
  //get message from client and send that message to every clients
  ObjectInputStream in;
  ObjectOutputStream out;
  
  //ready for get and send information that clients sent on constructor
  public ServerReciver(Socket s) throws IOException
  {
   in = new ObjectInputStream(s.getInputStream());
   out = new ObjectOutputStream(s.getOutputStream());
  
  }//constructor end
  
  public void run()
  {
   clients.put(port, out);
   
   member = db.selectMemberData();
   
   try
   {
    int jobID = (int)in.readObject();
    
    switch(jobID)
    {
     case 1 :
     {
      String id = (String)in.readObject();
      String pw = (String)in.readObject();
           
      boolean flag = true;
      
      for(int i =0; i < member.size(); i++)
      {
       if(id.equals(member.get(i).getId()))
       {
        if(pw.equals(member.get(i).getPw()))
        {
         out.writeObject(flag);
         break;
        }
              
       }              
      }
      
      flag = false;
      out.writeObject(flag);
         
      break;
     }
     case 2 :
     {
      String id = (String)in.readObject();
      
      boolean flag = true;
      if(id.equals(testId))
      {
       flag = false;
       out.writeObject(flag);
      }
      else
      {
       flag = true;
       out.writeObject(flag);
      }
      break;
      
     }
     case 3 :
     {
      Object obj = in.readObject();
      data =  (MemberData)obj;
      
      boolean flag = true;
      if(data != null)
      {
       out.writeObject(flag);
       
      }
      else
      {
       flag = false;
       out.writeObject(flag);
      }
      break;
      
     }     
    }    
   }
   catch (ClassNotFoundException e) {e.printStackTrace();}
   catch (IOException e) {e.printStackTrace();}
   
  }//run end
 
  
 }//ServerReciver end
 
 public void run()
 {
  try
  {
   new TcpIpServer().serverStart();
  }
 
  catch (IOException e)
  {
   e.printStackTrace();
  }
 
 
 }//main end


}//class end

'IT > JAVA프로젝트' 카테고리의 다른 글

프로젝트 PC방 - 1 (클라이언트)  (0) 2016.09.30
프로젝트 PC방 - 1 (서버)  (0) 2016.09.30
Posted by 파스름
Pic/대한민국2016.09.29 19:16

강릉에서

 

 

 

'Pic > 대한민국' 카테고리의 다른 글

강릉에서  (0) 2016.09.29
Posted by 파스름
TAG 사진
日本語/JLPT2016.09.29 15:50


単語


地域(ちいき) : 지역


洗濯物(せんたくもの) : 세탁물


反対(はんたい) : 반대


唱える(となえる) : 외다, 주장하다


製品(せいひん) : 제품


経験(けいけん) : 경험


宣伝(せいでん) : 선전


~を通して(とおして) : ~을 통하여



文法


~ぎみ    왠지 ~한 느낌.

접속 형태 : N, ます형


最近、風邪ぎみがあるので顔色が悪い。


今、試験期間だから、疲れぎみです・


この時計ちょっと遅れぎみだ。



~がち    ~한 경향이 있다.

접속 형태 : N, ます형


ここの電車、遅れがちた。昨日も一昨日も遅れた。


この地域はくもがちなので、洗濯物がかわきにくい。


一人ぐらいは健康不足になりがちだ。



~向き    ~의 방향, 경향, 알맞음의 의미

접속형태 : N


風の向き。


反対を唱える向き。


ご希望の向きには安くお分けします。



~向け ~의 대상, 행선지의 의미

접속형태 : N


現地へ向けて出発する。


男の子向け漫画雑誌。


サウジアラビア向け製品。



~を通して    ~을 통하여(기간 중)

접속형태 : N


子供は本だけでなく、いるいるな経験を通して成長する


人を通して申し込む。


マスコミを通して宣伝する。


Posted by 파스름
TAG JLPT