yoni

6회차 본문

java of educational by mind

6회차

yoni-1117 2018. 12. 9. 16:53

private는 특수한 경우만 사용하지 왠만하면 public을 사용


-----------------------------------------------------------------------------------------------------------

//[Server1.java]

package network;

 

import java.io.BufferedWriter;

import java.io.IOException;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import java.net.InetAddress;

import java.net.ServerSocket;

import java.net.Socket;

 

public class Server1 {

  public void server(int port) {

    ServerSocket server = null; // client의 접속 요청을 처리

    Socket socket = null;         // 데이터 송수신

    InetAddress inet = null;     // 접속 정보

    

    OutputStream os = null;  // 네트워크 전송

    OutputStreamWriter osw = null; // 출력시 한글을 코드로 변환 처리

    BufferedWriter bw = null;    // 출력할 데이터를 메모리에 저장

    

    try {

 

        server = new ServerSocket(port);

        

        while(true){//무한루트 서버가 꺼지면 안되니깐

          System.out.println("접속자를 기다리는 중 입니다.");

          socket = server.accept(); // 대기중 

          inet = socket.getInetAddress(); //누가 접근했는지 알아야하니깐

          System.out.println("접속된 Client IP: " + inet.getHostAddress());

          

          os = socket.getOutputStream();

          osw = new OutputStreamWriter(os);

          bw = new BufferedWriter(osw);

          

          // []/// 이게 형식임

          bw.write("[맛집]/회/봉포머구리/라땡");

          bw.write("[영화]/국가부도의날/어벤져스/완벽한타인");

          bw.write("[회사]/퇴사/하고/싶다");

          bw.flush();//내보내라 메모리에 저장되어있는게 원하는 곳으로 보냄 

          

          // 서버가 다운되면 안되니깐 try catch가 많이들어감

          try { bw.close(); } catch (Exception e) {  }

          try { osw.close(); } catch (Exception e) {  }

          try { os.close(); } catch (Exception e) {  }

          try { socket.close(); } catch (Exception e) {  }

        

      }

  

    } catch (IOException e) {

      e.printStackTrace();

    } finally {

      try { server.close(); } catch (Exception e) {  }

    }

    

  }

  

}

 -----------------------------------------------------------------------------------------------------------

//[Client1Use.java]

package network;

 

public class Client1Use {

 

  public static void main(String[] args) {

    Client1 client = new Client1();

    

    String ip = args[0]; // ip

    int port = 2010;

    

    client.client(ip, port);

 

  }

 

}


 -----------------------------------------------------------------------------------------------------------

//[Client1Use.java]

package network;

 

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.InetAddress;

import java.net.Socket;

import java.net.UnknownHostException;

import java.util.StringTokenizer;

 

public class Client1 {

  public void client(String ip, int port) {

    Socket socket = null;         // 데이터 송수신

    InetAddress inet = null;     // 접속 정보

    

    InputStream is = null;       // 네트워크 수신

    InputStreamReader isr = null; // 수신된 코드를 한글로 변환

    BufferedReader br = null;      // 메모리에 기록

 

    try {

      socket = new Socket(ip, port); // 서버에 연결 요청


      inet = socket.getInetAddress();

      System.out.println("접속한 서버 IP: " + inet.getHostAddress());//접속지의 대한 ip를 알 수 있음 클라이언트 ip를 얻을 수 있음

      

      //입력용 소스

      is = socket.getInputStream();

      isr = new InputStreamReader(is);

      br = new BufferedReader(isr);

      

      //이부분이 구현 부분이고 그외의 소스들은 정형화된것

      String line = br.readLine();

      StringTokenizer st = new StringTokenizer(line, "/");

      while(st.hasMoreTokens()){

        System.out.println(st.nextToken());

      }

      //socket.close();

 

    } catch (UnknownHostException e) {

      e.printStackTrace();

    } catch (IOException e) {

      e.printStackTrace();

    } finally {

      try { br.close(); } catch (Exception e) {  }

      try { isr.close(); } catch (Exception e) {  }

      try { is.close(); } catch (Exception e) {  }

      try { socket.close(); } catch (Exception e) {  }

    }

    

  }

}

 


▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶이렇게가 한 셋

 -----------------------------------------------------------------------------------------------------------

게임개발은 자바를 사용하지않음 유니티를 사용함

자바는 게임으로써 상용적인 관점에서 떨어짐

소켓기반 쓰레드의 생명주기를 개발한다



'java of educational by mind' 카테고리의 다른 글

7회차  (0) 2018.12.15
5회차  (0) 2018.12.08
3회차  (0) 2018.12.01
2회차 (if,  (0) 2018.11.25
Comments