<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=GnuSmalltalkUsersGuide%3AAdditionalChapter6_1</id>
	<title>GnuSmalltalkUsersGuide:AdditionalChapter6 1 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=GnuSmalltalkUsersGuide%3AAdditionalChapter6_1"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:AdditionalChapter6_1&amp;action=history"/>
	<updated>2026-05-01T12:00:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:AdditionalChapter6_1&amp;diff=4299&amp;oldid=prev</id>
		<title>Onionmixer: GSUG Sockets.AbstractSocket 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:AdditionalChapter6_1&amp;diff=4299&amp;oldid=prev"/>
		<updated>2014-02-01T09:25:04Z</updated>

		<summary type="html">&lt;p&gt;GSUG Sockets.AbstractSocket 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;Sockets.AbstractSocket&lt;br /&gt;
&lt;br /&gt;
==Sockets.AbstractSocket==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;네임스페이스 Sockets에 정의됨&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;슈퍼클래스: Stream&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;범주: 소켓-스트림&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:해당 클래스는 클라이언트 현장의 소켓을 모델링한다. 소켓은 개념적으로 파일 처리와 비슷한 네트워크 통신을 위한 TCP/IP 종단점(endpoint)이다.&amp;lt;BR&amp;gt;해당 클래스는 요청 시 버퍼링과 블로킹(blocking)만 책임진다. AbstractSocketImpl 의 서브클래스에 해당하는 기본 소켓 구현 객체를 사용한다. 이것은 FileDescriptor 내에서 소켓과 관계가 없는 메서드를 숨길 뿐만 아니라 여러 주소 체계(address families)에서 요구하는 구현의 미묘한 차이와 상관없이 버퍼링을 구현하기도 한다. 추소 체계 클래스(SocketAddress의 서브클래스)는 소켓 구현 객체의 공장 역할을 한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocket 클래스: 기본값===&lt;br /&gt;
&lt;br /&gt;
====defaultAddressClass====&lt;br /&gt;
&lt;br /&gt;
사용될 기본 주소 체계를 응답하라. 라이브러리에서는 주소 체계가 SocketAddress의 서브클래스에 의해 표현되는데 기본적으로는 IPAddress에 해당한다.&lt;br /&gt;
&lt;br /&gt;
====defaultAddressClass: class====&lt;br /&gt;
&lt;br /&gt;
사용될 기본 주소 체계를 설정하라. 라이브러리에서는 주소 체계가 SocketAddress의 서브클래스에 의해 표현되는데 기본적으로는 IPAddress에 해당한다.&lt;br /&gt;
&lt;br /&gt;
====defaultImplementationClassFor: aSocketAddressClass====&lt;br /&gt;
&lt;br /&gt;
기본 구현 클래스를 응답하라. 서브클래스에 따라 이는 주어진 어드레스 클래스의 기본 스트림 소켓 구현 클래스가 되기도 하고, 기본 데이터그램 소켓 구현 클래스가 되기도 한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocket 클래스: 인스턴스 생성===&lt;br /&gt;
&lt;br /&gt;
====new====&lt;br /&gt;
&lt;br /&gt;
이 클래스의 인스턴스를 대상으로 해당 메서드를 호출해서는 안 된다.&lt;br /&gt;
&lt;br /&gt;
====new: implementation====&lt;br /&gt;
&lt;br /&gt;
수신자의 새 인스턴스를 응답하되 객체가 &amp;#039;implementation&amp;#039; 매개변수로서 전달한 내용을 기본 레이어로 사용하라; 객체는 아마도 일종의 AbstractSocketImple가 될 것이다.&lt;br /&gt;
&lt;br /&gt;
====new: implClass addressClass: addressClass====&lt;br /&gt;
&lt;br /&gt;
수신자의 새 인스턴스를 응답하되 &amp;#039;implementationClass&amp;#039;의 새 인스턴스를 기본 레이어로 이용하고 &amp;#039;addressClass&amp;#039;의 프로토콜 체계를 이용하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocket 클래스: 시간 만료된(timed-out) 연산===&lt;br /&gt;
&lt;br /&gt;
====checkPeriod====&lt;br /&gt;
&lt;br /&gt;
데이터가 준비되어 있지 않고 연결이 여전히 개방된 (밀리초) 경우 소켓 폴(socket poll) 사이에 흐르는 시간을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====checkPeriod: anInteger====&lt;br /&gt;
&lt;br /&gt;
데이터가 준비되어 있지 않고 연결이 여전히 개방된 (밀리초) 경우 소켓 폴(socket poll) 사이에 흐르는 시간을 설정하라.&lt;br /&gt;
&lt;br /&gt;
====timeout====&lt;br /&gt;
&lt;br /&gt;
데이터(아직 이용 불가) 요청과 연결이 끊긴 것으로 간주되는 순간 (밀리초) 사이에 흐르는 시간을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====timeout: anInteger====&lt;br /&gt;
&lt;br /&gt;
데이터(아직 이용 불가) 요청과 연결이 끊긴 것으로 간주되는 순간 (밀리초) 사이에 흐르는 시간을 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocket 클래스: 잘 알려진 포트===&lt;br /&gt;
&lt;br /&gt;
====defaultPortAt: protocol====&lt;br /&gt;
&lt;br /&gt;
주어진 서비스(고수준 프로토콜)에 (기본적으로) 사용되는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====defaultPortAt: protocol ifAbsent: port====&lt;br /&gt;
&lt;br /&gt;
주어진 서비스(고수준 프로토콜)에 (기본적으로) 사용되는 포트를 응답하고, 어떤 것도 등록되지 않은 경우 명시된 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====defaultPortAt: protocol put: port====&lt;br /&gt;
&lt;br /&gt;
주어진 포트를 &amp;#039;protocol&amp;#039;이 명시한 서비스로 연관시켜라.&lt;br /&gt;
&lt;br /&gt;
====portCmdServer====&lt;br /&gt;
&lt;br /&gt;
rsh daemon이 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portDNS====&lt;br /&gt;
&lt;br /&gt;
DNS가 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portDayTime====&lt;br /&gt;
&lt;br /&gt;
TOD 서비스가 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portDiscard====&lt;br /&gt;
&lt;br /&gt;
DISCARD 서비스가 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portEcho====&lt;br /&gt;
&lt;br /&gt;
ECHO 서비스가 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portExecServer====&lt;br /&gt;
&lt;br /&gt;
exec 서버가 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portFTP====&lt;br /&gt;
&lt;br /&gt;
FTP daemon이 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portFinger====&lt;br /&gt;
&lt;br /&gt;
finger daemon이 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portGopher====&lt;br /&gt;
&lt;br /&gt;
Gopher daemon이 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portHTTP====&lt;br /&gt;
&lt;br /&gt;
http daemon이 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portLoginServer====&lt;br /&gt;
&lt;br /&gt;
rlogin daemon이 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portNNTP====&lt;br /&gt;
&lt;br /&gt;
nntp daemon이 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portNetStat====&lt;br /&gt;
&lt;br /&gt;
NETSTAT service가 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portPOP3====&lt;br /&gt;
&lt;br /&gt;
pop3 daemon이 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portReserved====&lt;br /&gt;
&lt;br /&gt;
중요(privileged) 프로세스로 예약(reserved)된 마지막 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portSMTP====&lt;br /&gt;
&lt;br /&gt;
SMTP daemon이 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portSSH====&lt;br /&gt;
&lt;br /&gt;
SSH daemon이 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portSystat====&lt;br /&gt;
&lt;br /&gt;
SYSTAT service가 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portTelnet====&lt;br /&gt;
&lt;br /&gt;
TELNET daemon이 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portTimeServer====&lt;br /&gt;
&lt;br /&gt;
타임 서버가 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====portWhois====&lt;br /&gt;
&lt;br /&gt;
WHOIS daemon이 듣는 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocket: 접근하기===&lt;br /&gt;
&lt;br /&gt;
====address====&lt;br /&gt;
&lt;br /&gt;
이해관계가 같은 IP 주소를 응답하라 (서브클래스 내 정의에 따라 로컬 또는 원격 주소).&lt;br /&gt;
&lt;br /&gt;
====available====&lt;br /&gt;
&lt;br /&gt;
소켓에 이용 가능한 데이터가 존재하는지 응답하라. #canRead와 같이 이전 기종과의 호환성을 위해 존재한다.&lt;br /&gt;
&lt;br /&gt;
====canRead====&lt;br /&gt;
&lt;br /&gt;
소켓에 이용 가능한 데이터가 존재하는지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====canWrite====&lt;br /&gt;
&lt;br /&gt;
소켓의 쓰기 버퍼에 여유 공간이 있는지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====close====&lt;br /&gt;
&lt;br /&gt;
수신자가 표현하는 소켓을 닫아라.&lt;br /&gt;
&lt;br /&gt;
====flush====&lt;br /&gt;
&lt;br /&gt;
수신자가 사용하는 버퍼는 모두 비워라. &lt;br /&gt;
&lt;br /&gt;
====isOpen====&lt;br /&gt;
&lt;br /&gt;
수신자와 원격 종단점 간 연결이 아직 존재하는지(alive) 응답하라.&lt;br /&gt;
&lt;br /&gt;
====isPeerAlive====&lt;br /&gt;
&lt;br /&gt;
피어 원격 머신(peer remote machine)과 연결이 아직 유효한지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====localAddress====&lt;br /&gt;
&lt;br /&gt;
소켓의 로컬 IP 주소를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====localPort====&lt;br /&gt;
&lt;br /&gt;
소켓의 로컬 IP 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====port====&lt;br /&gt;
&lt;br /&gt;
이해관계가 같은 IP 포트를 응답하라 (서브클래스 내 정의에 따라 로컬 또는 원격 종단점)&lt;br /&gt;
&lt;br /&gt;
====remoteAddress====&lt;br /&gt;
&lt;br /&gt;
소켓의 원격 종단점에 대한 IP 주소를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====remotePort====&lt;br /&gt;
&lt;br /&gt;
소켓의 원격 종단점에 대한 IP 포트를 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocket: 인쇄하기===&lt;br /&gt;
&lt;br /&gt;
====printOn: aStream====&lt;br /&gt;
&lt;br /&gt;
수신자의 표현을 aStream 상에 인쇄하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocket: 소켓 옵션===&lt;br /&gt;
&lt;br /&gt;
====soLinger====&lt;br /&gt;
&lt;br /&gt;
소켓이 신뢰가 가는 전달을 약속하지만 닫힐 때 인정되지 않은/전송되지 않은 패킷이 있는 경우 소켓에게 허용되는 대기 시간을 초로 응답하고, 패킷이 정상적이거나 파기된 경우 nil을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====soLinger: linger====&lt;br /&gt;
&lt;br /&gt;
소켓이 신뢰가 가는 전달을 약속하지만 닫힐 때 인정되지 않은/전송되지 않은 패킷이 있는 경우 소켓에게 허용되는 대기 시간을 초로 설정하라.&lt;br /&gt;
&lt;br /&gt;
====soLingerOff====&lt;br /&gt;
&lt;br /&gt;
소켓이 신뢰가 가는 전달을 약속할지라도 그것이 닫힐 때 인정되지 않은/전송되지 않은 패킷이 있는 경우 정상적으로 처리될 것인지 파기될 것인지를 명시하라.&lt;br /&gt;
&lt;br /&gt;
====species====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;String&amp;#039;를 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocket: 스트림 프로토콜===&lt;br /&gt;
&lt;br /&gt;
====atEnd====&lt;br /&gt;
&lt;br /&gt;
기본값으로(by default) 연결이 여전히 개방되었는지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====next====&lt;br /&gt;
&lt;br /&gt;
소켓으로부터 다른 문자를 읽고, 연결이 끊긴 (dead) 경우 실패한다.&lt;br /&gt;
&lt;br /&gt;
====next: n putAll: aCollection startingAt: pos====&lt;br /&gt;
&lt;br /&gt;
소켓에 &amp;#039;char&amp;#039;를 쓰고, 연결이 끊긴 경우 실패한다. SIGPIPE 신호는 시스템에 의해 자동으로 잡히고 간과된다.&lt;br /&gt;
&lt;br /&gt;
====nextPut: char====&lt;br /&gt;
&lt;br /&gt;
소켓에 &amp;#039;char&amp;#039;를 쓰고, 연결이 끊긴 경우 실패한다. SIGPIPE 신호는 시스템에 의해 자동으로 잡히고 간과된다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocket: 검사하기===&lt;br /&gt;
&lt;br /&gt;
====isExternalStream====&lt;br /&gt;
&lt;br /&gt;
수신자가 파일과 소켓 중 어느 것을 스트리밍하는지 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GnuSmalltalkUsersGuide]]&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>