반응형
01. 내컴퓨터의 IP Address 확인하는법
- CMD IP주소 관련 명령어 이용
//Windows
ipconfig
route print
netstat -na
02. 내컴퓨터의 IPAddress 확인하는 프로그램
package xyz.itwill.net;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class InetAddressApp {
public static void main(String[] args) throws UnknownHostException {
//📡 InetAddress : 네트워크 정보(IP Address와 HostName)를 저장하기 위한 클래스
//📡 InetAddress.getLocalHost() : 로컬 컴퓨터의 네트워크 정보가 저장된 InetAddress 객체를 반환하는 메소드
// => UnknownHostException 발생(일반 예외) : 네트워크 컴퓨터 이름(HostName)의 컴퓨터를 검색할 수 없는 경우 발생되는 예외
// => 로컬 컴퓨터의 이더넷에는 기본적으로 [127.0.0.1]의 IP Address와 [localhost] 이름으로 HostName 설정
InetAddress myComputer=InetAddress.getLocalHost();
//📡 InetAddress.toString() : InetAddress 객체에 저장된 네트워크 정보를 문자열로 반환하는 메소드
System.out.println("myComputer = "+myComputer);
//myComputer = DESKTOP-TFH6NFE/192.168.13.10
//myComputer = Jaehees-MacBook-Air.local/127.0.0.1
//📡 InetAddress.getHostName() : InetAddress 객체에 저장된 네트워크 정보에서 HostName을 문자열로 반환하는 메소드
System.out.println("myComputer = "+myComputer.getHostName());
//myComputer = DESKTOP-TFH6NFE
//myComputer = Jaehees-MacBook-Air.local
//📡 InetAddress.getHostAddress() : InetAddress 객체에 저장된 네트워크 정보에서 IP Address을 문자열로 반환하는 메소드
System.out.println("myComputer = "+myComputer.getHostAddress());
//myComputer = 192.168.13.10
//myComputer = 127.0.0.1
System.out.println("===============================================================");
//📡 InetAddress.getByName(String host) : 전달받은 컴퓨터 이름에 대한 네트워크 정보가 저장된 InetAddress 객체를 반환하는 메소드
//=> 보통 대형사이트들은 네트워크를 2개 이상 사용하는 경우 많음
InetAddress itwill=InetAddress.getByName("www.itwill.xyz");
System.out.println("[www.itwill.xyz]의 IP Address = "+itwill.getHostAddress());
//[www.itwill.xyz]의 IP Address = 182.237.126.17
//📡 InetAddress.getAllByName(String host) : 전달받은 컴퓨터 이름에 대한 모든 네트워크 정보가 저장된 InetAddress 객체 배열을 반환하는 메소드
InetAddress[] naver=InetAddress.getAllByName("www.naver.com");
for(InetAddress address:naver) {
System.out.println("[www.naver.com]의 IP Address = "+address.getHostAddress());
}
//[www.naver.com]의 IP Address = 223.130.195.200
//[www.naver.com]의 IP Address = 223.130.200.107
}
}
03. ServerSocket 클래스를 사용하여 사용가능한 포트번호를 검색하는 프로그램
package xyz.itwill.net;
import java.net.ServerSocket;
//TCP 프로그램 : ServerSocket 클래스와 Socket 클래스를 이용하여 작성
// => 서버와 클라이언트가 소켓을 사용하여 1:1로 연결되어 데이타를 송수신하는 네트워크 프로그램
// 🐹네트워크를 한다 = 포트가 열려있다 = 포트를 통해 값을 주고 받는다
//서버(Server) : 외부의 컴퓨터(클라이언트)가 접속할 수 있는 환경과 서비스를 제공하기 위한 컴퓨터
// => ex. 웹서비스를 제공해주는 컴퓨터 : www.naver.com 웹서버
// => ServerSocket 클래스를 사용하여 서버 프로그램 작성
//클라이언트(Client) : 서버에 접속하여 서비스를 제공받을 수 있는 컴퓨터
// => Socket 클래스를 사용하여 클라이언트 프로그램 작성
//ServerSocket 클래스를 사용하여 사용가능한 포트번호를 검색하는 프로그램
public class ServerSocketApp {
public static void main(String[] args) {
for(int i=2000;i<=9000;i+=1000) {
try {
//ServerSocket : 네트워크에서 서버 프로그램을 만들기 위해 사용하는 클래스
// => ServerSocket(int port) : 포트번호를 전달받아 ServerSocket 객체를 생성하는 생성자
// => ServerSocket 객체를 생성하여 클라이언트가 접속할 수 있는 환경 제공
// => 전달받은 포트번호를 이미 다른 네트워크 프로그램에서 사용중인 경우 IOException 발생
ServerSocket serverSocket=new ServerSocket(i);
System.out.println("[메세지]"+i+"번 포트는 네트워크 프로그램에서 사용 가능합니다.");
//ServerSocket.close() : ServerSocket 객체를 제거하는 메소드
// => 클라이언트가 접속할 수 있는 환경 소멸
serverSocket.close();
} catch (IOException e) {
System.out.println("[에러]"+i+"번 포트는 이미 다른 네트워크 프로그램에서 사용중입니다.");
}
}
}
}
//[메세지]2000번 포트는 네트워크 프로그램에서 사용 가능합니다.
//[메세지]3000번 포트는 네트워크 프로그램에서 사용 가능합니다.
//[메세지]4000번 포트는 네트워크 프로그램에서 사용 가능합니다.
//[에러]5000번 포트는 이미 다른 네트워크 프로그램에서 사용중입니다.
//[메세지]6000번 포트는 네트워크 프로그램에서 사용 가능합니다.
//[에러]7000번 포트는 이미 다른 네트워크 프로그램에서 사용중입니다.
//[메세지]8000번 포트는 네트워크 프로그램에서 사용 가능합니다.
//[메세지]9000번 포트는 네트워크 프로그램에서 사용 가능합니다.
반응형
'java > java.net' 카테고리의 다른 글
[java.net] 5. 채팅 서버 프로그램 | 채팅 클라이언트 프로그램 (0) | 2024.07.03 |
---|---|
[java.net] 4. UDP 프로토콜 프로그램 (0) | 2024.07.03 |
[java.net] 3. TCP 프로토콜 프로그램 (0) | 2024.07.03 |
[java.net] 1. 프로토콜의 구조 (0) | 2024.07.02 |