Java(Network)_02~3

2024. 11. 12. 18:33·Java/기초 내용 정리

2024-11-12

 

 

 

 

[연결을 기다림]...
[연결을 수락함]...127.0.0.1
[연결을 기다림]...

 

package basic;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;

/*
 *  소켓(socket)?
 *  - 소켓은 응용 프로그램에서 TCP/IP 를 이용하는 창구 역할을 함.
 *  - 두 프로그램이 네트워크를 통하여 서로 통신할 수 있도록 양쪽에서
 *    생성되는 링크
 *  - 두 소켓이 연결이 되면 서로 다른 프로그램이 서로 다른 데이터를 
 *    전달 할 수 있음.
 */

/*
 *  [소켓 통신의 일련의 규칙]
 *  1. Server 에서 port 를 열고 접속을 기다림.
 *  2. Client 에서 Server 의 IP 와 port 를 접속하여 통신이 연결됨.
 *  3. 이 때 서버에서는 클라이언트와 통신을 할 socket 을 보내줌.
 *  4. 클라이언트는 서버에서 보내준 socket 을 통해서 서버와 통신을 하게 됨.
 *  	==> 이 때 서로의 통신은 send 와 receive 형태로 주고 받게 됨.
 *  5. 통신이 끝나면 close() 메서드로 접속을 끊게 됨. 
 */

public class ServerSocket_02 {

	public static void main(String[] args) {
		
		ServerSocket serverSocket = null;
		
		try {
			
			serverSocket = new ServerSocket();
			serverSocket.bind(new InetSocketAddress("localhost", 5002));
			
			while (true) {
				
				System.out.println("[연결을 기다림]...");
				
				//  accept() : 클라이언트의 연결을 수락하는 메서드
				//  클라이언트의 연결 요청이 들어오면 수락을 하고 데이터를 주고
				//  받을 수 있는 통신용 소켓을 하나 만들게 됨.
				Socket socket =  serverSocket.accept();
				
				InetSocketAddress isa = 
						(InetSocketAddress)socket.getRemoteSocketAddress();
				
				//  클라이언트의 컴퓨터 이름을 가져올 수 있음.
				System.out.println("[연결을 수락함]..." + isa.getHostName());
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

 

package basic;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;

public class ClientSocket_03 {

	public static void main(String[] args) {
		
		Socket socket = null;

		try {
			
			socket = new Socket();
			
			System.out.println("[연결 요청중]...");
			
			socket.connect(new InetSocketAddress("localhost", 5002));
			
			System.out.println("[연결 성공]...");
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if (!socket.isClosed()) {		//  연결이 되어 있다면
			
			try {
				socket.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

'Java > 기초 내용 정리' 카테고리의 다른 글

Java(JDBC)_00  (0) 2024.12.12
Java(Network)_Exam_01  (0) 2024.11.12
Java(Network)_01  (0) 2024.11.12
Java(Lambda)_02  (1) 2024.11.12
Java(Lambda)_01  (0) 2024.11.12
'Java/기초 내용 정리' 카테고리의 다른 글
  • Java(JDBC)_00
  • Java(Network)_Exam_01
  • Java(Network)_01
  • Java(Lambda)_02
mw41817
mw41817
일생의 개발 기록 저장소
  • mw41817
    IT 개발 일지
    mw41817
    • Index (487)
      • HTML (36)
        • 기초 내용 정리 (36)
      • CSS (29)
        • 기초 내용 정리 (29)
      • JavaScript (60)
        • 기초 내용 정리 (60)
      • JQuery (38)
        • 기초 내용 정리 (38)
      • Java (232)
        • 기초 내용 정리 (232)
      • JSP (46)
        • 기초 내용 정리 (46)
      • Spring, Boot (31)
        • 기초 내용 정리 (31)
      • DB (5)
        • Oracle SQL (5)
      • Code WorkBook (6)
        • programmers (6)
        • Baekjoon (0)
      • 기타 (1)
        • 유용한 사이트 (3)
  • 전체
    오늘
    어제
  • 글쓰기 관리
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 카테고리
    • 주인장 GitHub
  • 공지사항

  • 인기 글

  • 태그

    html #코딩 #프로그래밍 #기초
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
mw41817
Java(Network)_02~3
상단으로

티스토리툴바