yoni
6회차 본문
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 |