-
day35 - JAVA (네트워크)KIC/JAVA 2021. 8. 3. 22:10반응형
[네트워크]
-> 여러 대의 컴퓨터를 통신 회선으로 연결한 것
-> 홈 네트워크: 컴퓨터가 방마다 있고, 이들 컴퓨터를 유/무선 등의 통신 회선으로 연결하는 것
-> 지역 네트워크: 회사, 건물 특정 영역에 존재하는 컴퓨터를 통신 회선으로 연결한 것
-> 인터넷: 지역 네트워크를 통신 회선으로 연결한 것
[IP주소와 포트]
-> IP 주소
-> 네트워크상에서 컴퓨터를 식별하는 번호
-> 네트워크 어댑터마다 할당
-> IP주소 확인 법 - 명령 프롬프트 사용
[클라이언트 서버 예제]
[server]
package javaPro.java_server; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class EchoServerEx1 { public static void main(String[] args) { int port = 5000; Socket socket = null; ServerSocket server = null; try { server = new ServerSocket(port); System.out.println("server 준비됨"); socket = server.accept(); System.out.println("server:" + server); System.out.println("localhost: " + server.getLocalPort()); System.out.println(); System.out.println("connected ip:" + socket.getInetAddress()); System.out.println("connected port: " + socket.getPort() + socket.getPort()); // client에서 보낸 메시지 저장 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); // out으로 client쪽으로 메시지 전송 PrintWriter out = new PrintWriter(socket.getOutputStream(), true); String input = ""; while ((input = in.readLine()) != null) { out.println(input + "데이터 받았습니다."); out.flush(); System.out.println(input); if (input.equals("bye")) break; } socket.close(); server.close(); } catch (Exception e) { e.printStackTrace(); } } }
[client]
package javaPro.java_server; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.util.Scanner; public class EchoClientEx1 { public static void main(String[] args) { int port = 5000; String ip = "192.168.56.1"; // 서버 ip 주소 (현재는 로컬호스트라 내 IP 주소) Socket socket = null; try { String input = ""; Scanner sc = new Scanner(System.in); socket = new Socket(ip, port); // out으로 server 쪽으로 메시지 전송 PrintWriter out = new PrintWriter(socket.getOutputStream(), true); // server에서 보낸 메시지 저장 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); System.out.println("local port:" + socket.getLocalPort()); System.out.println("local ip:" + socket.getLocalAddress()); System.out.println("server port:" + socket.getPort()); System.out.println("server IP:" + socket.getInetAddress()); System.out.println("메시지 입력: "); while ((input = sc.next()) != null) { // server 쪽으로 메시지 전송 out.println(input); out.flush(); // server에서 온 답장 출력 System.out.println("server msg: " + in.readLine()); System.out.println(input + " 다음 메시지를 입력하세요"); if (input.equals("bye")) break; } out.close(); // 이걸 안하면 오류 나는 경우가 많아서 필수로 적을 것 socket.close(); } catch (IOException e) { e.printStackTrace(); } } }
300x250'KIC > JAVA' 카테고리의 다른 글
day34 - JAVA (자바, IO스트림) (0) 2021.07.30 day33_2 - JAVA (자바, IO스트림) (0) 2021.07.29 day33_1 - JAVA (자바, 멀티 스레드) (0) 2021.07.29 day32 - JAVA (자바, 스트림 예제, 멀티 스레드) (0) 2021.07.28 day31 - JAVA (자바, 스트림, 플랫맵, 필터) (0) 2021.07.27