2013년 10월 18일 금요일

InetAddress 클래스

InetAddress 클래스
represents an Internet Protocol (IP) address. 
TCP는 IP를 지원하는 네트웍 위에 가상의 스트림 연결 상태를 만들어 놓은 프로토콜
  TCP 연결을 수행할 목적지의 주소를 지정할 때 사용하는 IP주소는 InetAddress 클래스로 처리하고, 실제로 서버에 TCP로 연결할때는Socket 클래스를 이용한다.
일단 연결이 된 후에는 이 연결된 소켓을 사용하여 Remote Server로의 스트림을 얻은 다음 이 스트림 인터페이스를 이용해 데이터를 보내고 받는다.


Address Types
- unicast : 하나의 송신자가 다른 하나의 수신자로 데이터를 전송하는 방식, 일반적인 인터넷 응용프로그램이 모두 유니캐스트 방식을 사용하고 있다.
- multicast : 하나 이상의 송신자들이 특정한 하나 이상의 수신자들에게 데이터를 전송하는 방식으로 인터넷 화상 회의 등의 응용에서 사용한다. 
- broadcast : 하나의 송신자가 같은 서브네트웍 상의 모든 수신자에게 데이터를 전송하는 방식이다


그룹 통신을 위하여 다중 수신자들에게 동일한 데이터를 전송하고자 할 경우 유니캐스트 전송방식을 이용한다면 전송하고자 하는 데이터 패킷을 다수의 수신자에게 각각 여러 번 전송해야 하며, 이러한 동일한 패킷의 중복전송으로 인해 네트웍 효율이 저하된다. 또한 수신자 수가 증가할 경우 이러한 문제점은 더 커지게 된다. 
반면 멀티캐스트 전송이 지원되면 송신자는 여러 수신자에게 한 번에 메시지가 전송되도록 하여, 데이터의 중복전송으로 인한 네트웍 자원의 낭비를 최소화할 수 있게 된다. 


---------------------- SimpleDNS.java
import java.net.InetAddress;
public class SimpleDNS {
  public static void main(String args[]) throws Exception {
      InetAddress address =  InetAddress.getByName(args[0]);
  //the highest order byte of the address is in IP[0]. 
      byte IP[] = address.getAddress();
  System.out.println("IP.length : " + IP.length);
      for (int index = 0; index < IP.length; index++)  {
         
            if (index > 0)  System.out.print(".");       //System.out.print(Integer.toBinaryString((int)IP[index]));
  //System.out.print(new Byte(IP[index]).toString());       
      //System.out.print(((int)IP[index]));
       System.out.print(((int)IP[index])& 0xff);
      }
    System.out.println();
  }
}

댓글 없음:

댓글 쓰기