GnuSmalltalkUsersGuide:AdditionalChapter6 12

From 흡혈양파의 번역工房
Jump to navigation Jump to search
Sockets.IPAddress

Sockets.IPAddress

네임스페이스 Sockets에 정의됨

슈퍼클래스: Sockets.SocketAddress

범주: 소켓-프로토콜


해당 클래스는 IPv4 주소를 모델링한다. 이는 IPv4 스트림(TCP), 데이터그램(UDP), raw socket의 공장 역할을 한다.


Sockets.IPAddress 클래스: C 상수

addressFamily

해당 설명 없음.

protocolFamily

해당 설명 없음.


Sockets.IPAddress 클래스: 상수

addressSize

IPv4 주소의 크기를 응답하라.

version

수신자가 구현하는 IP의 버전을 응답하라.


Sockets.IPAddress 클래스: 초기화

createLoopbackHost

수신자에 대한 주소 체계에서 루프백 호스트를 나타내는 객체를 응답하라. IPv4의 경우 이는 127.0.0.1이다.

createUnknownAddress

수신자에 대한 주소 체계에서 알려지지 않은 주소를 나타내는 객체를 응답하라.

initialize

수신자에 관한 기본 구현 클래스를 설정하라.


Sockets.IPAddress 클래스: 인스턴스 생성

fromArray: parts

숫자 배열로부터 새 IPAddress를 응답하라; 숫자는 IPv4 주소의 표준 숫자-콜론 표기법에서 콜론으로 구분되는 숫자로 간주되겠다.

fromBytes: aByteArray

숫자(digit) 형태와 같은 순으로 바이트를 포함하는 새 IPAddress를 ByteArray로부터 응답하라: 131.175.6.2 는 #[131 175 6 2]로 표현될 것이다.

fromSockAddr: aByteArray port: portAdaptor

Private - 구조에 C sockaddr를 포함하는 새 IPAddress를 ByteArray로부터 응답하라. portAdaptor의 값은 구조가 참조하는 포트를 참조하도록 변경된다.

fromString: aString

요청한 주소를 숫자(digit) 형태로 포함하는 새 IPAddress를 String으로부터 응답하라. 16진 형태는 허용되지 않는다.


인터넷 호스트 주소는 4 바이트 데이터를 포함하는 숫자다. 이는 두 개의 부분, 네트워크 번호와 해당 네트워크 내 로컬 네트워크 주소 번호로 나뉜다. 네트워크 번호는 처음부터 1, 2, 3 바이트 중 하나로 구성된다; 나머지 바이트는 로컬 주소에 해당한다.


네트워크 번호는 네트워크 정보 센터(Network Information Center; NIC)로 등록되며, 세 가지 클래스, A, B, C로 나뉜다. 각 기계의 로컬 네트워크 주소 번호는 특정 네트워크의 운영자를 이용해 등록된다.


클래스 A 네트워크는 0부터 127까지의 단일 바이트 숫자를 갖는다. 클래스 A 네트워크의 수는 소수에 불과하지만 그것이 지원하는 호스트 수는 많다 (몇 백만까지). 중간 크기의 클래스 B 네트워크는 2 바이트 네트워크 숫자를 갖는데, 첫 번째 바이트는 128-191 범위에 있다; 이들은 수천 개의 호스트를 지원하지만 대부분 소진(exhausted)된다. 클래스 C 네트워크는 가장 작고 가장 흔히 이용된다; 3 바이트 네트워크 숫자를 갖고, 첫 두 바이트는 192-223 범위에 있다. 클래스 D(multicast, 224.0.0.0 부터 239.255.255.255까지)와 클래스 E(research, 240.0.0.0부터 255.255.255.255까지) 또한 3 바이트 네트워크 숫자를 갖는다.


따라서 인터넷 주소에서 첫 1, 2, 또는 3 바이트는 네트워크를 명시한다. 나머지 인터넷 주소 부분은 해당 네트워크 내 주소를 명시한다. 클래스 A 네트워크 0은 모든 네트워크로 방송(broadcast)을 위해 예약된다. 게다가 각 네트워크 내 호스트 번호 0은 해당 네트워크 내 모든 호스트로 방송을 위해 예약된다. 클래스 A 네트워크 127은 루프백에 예약된다; 호스트 머신을 참조하기 위해서는 항상 Internet 주소 '127.0.0.1'을 이용할 수 있다 (이는 #loopbackHost 클래스 메서드에 의해 응답).


단일 머신은 다중 네트워크의 멤버가 될 수 있으므로 다중 Internet 호스트 주소를 가질 수 있다. 하지만 하나 이상의 머신이 같은 호스트 주소를 갖는 경우는 절대로 없다.


Internet 주소에 사용되는 표준 숫자-점 표기법에는 네 가지 형태가 있다: a.b.c.d 는 주소의 4 바이트를 개별적으로 명시한다; a.b.c 는 2 바이트 양(quantity)으로 해석되는데, a.b 라는 네트워크 주소 번호를 가진 클래스 B 네트워크에 호스트 주소를 명시할 때 유용하다; a.b는 주소의 마지막 부분을 3 바이트 양(quantity)으로 해석하며, 네트워크 주소 번호가 a인 클래스 A 네트워크에 호스트 주소를 명시할 때 유용하다.


하나의 부분만 주어질 경우 이는 곧바로 호스트 주소 번호에 해당한다.

new

이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.

with: b1 with: b2 with: b3 with: b4

바이트가 매개변수에 있는 새 IPAddress를 응답하라 (중요도가 높은 순으로).


Sockets.IPAddress: 접근하기

addressClass

수신자의 'address class'를 응답하라 (IPAddress class>>#fromString: 참조).

asByteArray

수신자의 바이트를 네트워크 순(big-endian)으로 포함하고 크기가 4인 읽기 가능 ByteArray를 응답하라.

host

수신자에 대한 호스트 번호를 응답하라; 이는 클래스 A 주소의 경우 마지막 3 바이트, 클래스 B 주소의 경우 마지막 2 바이트, 나머지는 마지막 1 바이트로 주어진다.

isMulticast

수신자가 멀티캐스트 데이터그램 연결에 예약된 주소를 나타내는지 응답하라.

network

수신자에 대한 네트워크 번호를 응답하라; 이는 클래스 C/D/E 주소의 경우 첫 3 바이트, 클래스 B 주소의 경우 첫 2 바이트, 나머지는 첫 1 바이트로 주어진다.

subnet

수신자에 대한 호스트 번호를 응답하라; 클래스 A 주소의 경우 0인 반면 클래스 B/C/D/E 주소의 경우 네트워크 숫자의 마지막 바이트로 주어진다.


Sockets.IPAddress: 인쇄하기

printOn: aStream

수신자를 마침표 표기법으로 인쇄하라.


Notes