<?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_2</id>
	<title>GnuSmalltalkUsersGuide:AdditionalChapter6 2 - 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_2"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:AdditionalChapter6_2&amp;action=history"/>
	<updated>2026-05-01T06:48:15Z</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_2&amp;diff=4300&amp;oldid=prev</id>
		<title>Onionmixer: GSUG Sockets.AbstractSocketImpl 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:AdditionalChapter6_2&amp;diff=4300&amp;oldid=prev"/>
		<updated>2014-02-01T09:30:22Z</updated>

		<summary type="html">&lt;p&gt;GSUG Sockets.AbstractSocketImpl 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;Sockets.AbstractSocketImpl&lt;br /&gt;
&lt;br /&gt;
==Sockets.AbstractSocketImpl==&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;슈퍼클래스: FileDescriptor&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;
:해당 추상 클래스는 소켓 구현을 위한 부모 클래스의 역할을 한다. 구현 클래스는 실제 소켓 연산을 실행하는 루틴에게 중재자 역할을 수행한다. 이는 Socket 클래스의 버퍼링 및 블로킹 행위를 숨긴다.&amp;lt;BR&amp;gt;기본 구현은 각 주소 체계에 의해 제공되지만, SocketAddress 서브클래스에서 클래스 메서드에 의해 변경이 가능하다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocketImpl 클래스: 추상적===&lt;br /&gt;
&lt;br /&gt;
====addressClass====&lt;br /&gt;
&lt;br /&gt;
수신자를 위해 주소를 처리하는 책임이 있는 클래스를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====protocol====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;create&amp;#039;에 대한 프로토콜 매개변수를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====socketType====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;create&amp;#039;에 대한 소켓 타입 매개변수를 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocketImpl 클래스: C call-outs===&lt;br /&gt;
&lt;br /&gt;
====accept: socket peer: peer addrLen: len====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====bind: socket to: addr addrLen: len====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====connect: socket to: addr addrLen: len====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====create: family type: type protocol: protocol====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====getPeerName: socket addr: addr addrLen: len====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====getSockName: socket addr: addr addrLen: len====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====listen: socket log: len====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====option: socket level: level at: name get: value size: len====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====option: socket level: level at: name put: value size: len====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====receive: socket buffer: buf size: len flags: flags from: addr size: addrLen====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====send: socket buffer: buf size: len flags: flags to: addr size: addrLen====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocketImpl 클래스: C 상수===&lt;br /&gt;
&lt;br /&gt;
====soLinger====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====soReuseAddr====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====sockDgram====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====sockRDM====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====sockRaw====&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====sockStream====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====solSocket====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocketImpl 클래스: 소켓 생성===&lt;br /&gt;
&lt;br /&gt;
====newFor: addressClass====&lt;br /&gt;
&lt;br /&gt;
수신자에 대한 소켓을 생성하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocketImpl: 접근하기===&lt;br /&gt;
&lt;br /&gt;
====connectTo: ipAddress port: port====&lt;br /&gt;
&lt;br /&gt;
수신자를 주어진 IP 주소와 포트로 연결하라. &amp;#039;연결하라&amp;#039;는 것은 소켓의 원격 종단점을 부착함을 의미한다. &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;
====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.AbstractSocketImpl: 비동기 연산===&lt;br /&gt;
&lt;br /&gt;
====ensureReadable====&lt;br /&gt;
&lt;br /&gt;
파일이 열린 경우 그로부터 데이터를 읽을 수 있을 때까지 기다려라. 대기 시 다른 Process들의 실행이 허용된다. &lt;br /&gt;
&lt;br /&gt;
====ensureWriteable====&lt;br /&gt;
&lt;br /&gt;
파일이 열렸다면 파일로 쓸 수 있을 때까지 기다려라. 대기 시 다른 Process들의 실행이 허용된다.&lt;br /&gt;
&lt;br /&gt;
====waitForException====&lt;br /&gt;
&lt;br /&gt;
파일이 열렸다면 예외 조건(out-of-band 데이터의 존재와 같은)이 파일에 발생할 때까지 기다려라. 대기 시 다른 Process들의 실행이 허용된다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocketImpl: C call-outs===&lt;br /&gt;
&lt;br /&gt;
====accept: socket peer: peer addrLen: len====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====bind: socket to: addr addrLen: len====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====connect: socket to: addr addrLen: len====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====create: family type: type protocol: protocol====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====getPeerName: socket addr: addr addrLen: len====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====getSockName: socket addr: addr addrLen: len====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====listen: socket log: len====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====option: socket level: level at: name get: value size: len====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====option: socket level: level at: name put: value size: len====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====receive: socket buffer: buf size: len flags: flags from: addr size: addrLen====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
====send: socket buffer: buf size: len flags: flags to: addr size: addrLen====&lt;br /&gt;
&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocketImpl: C 상수===&lt;br /&gt;
&lt;br /&gt;
====soError====&lt;br /&gt;
해당 설명 없음.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocketImpl: 소켓 연산===&lt;br /&gt;
&lt;br /&gt;
====accept: implementationClass====&lt;br /&gt;
&lt;br /&gt;
수신자에게서 연결을 수락하고, 새로 생성된 활성 서버 소켓을 처리하게 될 implementationClass의 새 인스턴스를 생성하라.&lt;br /&gt;
&lt;br /&gt;
====bindTo: ipAddress port: port====&lt;br /&gt;
&lt;br /&gt;
수신자를 주어진 IP 주소와 포트로 바인딩하라. &amp;#039;바인딩&amp;#039;이란 소켓의 로컬 종단점을 부착함을 의미한다.&lt;br /&gt;
&lt;br /&gt;
====fileOp: ioFuncIndex====&lt;br /&gt;
&lt;br /&gt;
Private - FileStreams가 사용하는 프리미티브의 개수를 제한하는 데에 사용된다.&lt;br /&gt;
&lt;br /&gt;
====fileOp: ioFuncIndex ifFail: aBlock====&lt;br /&gt;
&lt;br /&gt;
Private - FileStreams가 사용하는 프리미티브의 개수를 제한하는 데에 사용된다..&lt;br /&gt;
&lt;br /&gt;
====fileOp: ioFuncIndex with: arg1====&lt;br /&gt;
&lt;br /&gt;
Private - FileStreams가 사용하는 프리미티브의 개수를 제한하는 데에 사용된다.&lt;br /&gt;
&lt;br /&gt;
====fileOp: ioFuncIndex with: arg1 ifFail: aBlock====&lt;br /&gt;
&lt;br /&gt;
Private - FileStreams가 사용하는 프리미티브의 개수를 제한하는 데에 사용된다..&lt;br /&gt;
&lt;br /&gt;
====fileOp: ioFuncIndex with: arg1 with: arg2====&lt;br /&gt;
&lt;br /&gt;
Private - FileStreams가 사용하는 프리미티브의 개수를 제한하는 데에 사용된다.&lt;br /&gt;
&lt;br /&gt;
====fileOp: ioFuncIndex with: arg1 with: arg2 ifFail: aBlock====&lt;br /&gt;
&lt;br /&gt;
Private - FileStreams가 사용하는 프리미티브의 개수를 제한하는 데에 사용된다..&lt;br /&gt;
&lt;br /&gt;
====fileOp: ioFuncIndex with: arg1 with: arg2 with: arg3====&lt;br /&gt;
&lt;br /&gt;
Private - FileStreams가 사용하는 프리미티브의 개수를 제한하는 데에 사용된다.&lt;br /&gt;
&lt;br /&gt;
====fileOp: ioFuncIndex with: arg1 with: arg2 with: arg3 ifFail: aBlock====&lt;br /&gt;
&lt;br /&gt;
Private - FileStreams가 사용하는 프리미티브의 개수를 제한하는 데에 사용된다..&lt;br /&gt;
&lt;br /&gt;
====getSockName====&lt;br /&gt;
&lt;br /&gt;
구조체에 소켓의 로컬 종단점에 대한 sockaddr가 포함된 ByteArray를 검색하라.&lt;br /&gt;
&lt;br /&gt;
====listen: backlog====&lt;br /&gt;
&lt;br /&gt;
수신자를 주어진 크기의 대기(pending) 연결 큐가 있는 수동적 서버(passive server)로 만들어라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sockets.AbstractSocketImpl: 소켓 옵션===&lt;br /&gt;
&lt;br /&gt;
====optionAt: opt level: level put: anObject====&lt;br /&gt;
&lt;br /&gt;
소켓 옵션의 값을 수정하라. 옵션 식별자는 &amp;#039;opt&amp;#039;에, 수준은 &amp;#039;level&amp;#039;에 존재한다. anObject는 부울, 정수, 소켓 주소, ByteArray 중 하나가 될 수 있다. 대부분의 일반 소켓 옵션을 위해 해당 메서드 위에 레이어가 제공되므로 이것이 사용되는 경우는 드물 것이다.&lt;br /&gt;
&lt;br /&gt;
====optionAt: opt level: level size: size====&lt;br /&gt;
&lt;br /&gt;
주어진 크기의 ByteArray에서 소켓 옵션의 값을 응답하라. 옵션 식별자는 &amp;#039;opt&amp;#039;에, 수준은 &amp;#039;level&amp;#039;에 존재한다. anObject는 부울, 정수, 소켓 주소, ByteArray 중 하나가 될 수 있다. 대부분의 일반 소켓 옵션을 위해 해당 메서드 위에 레이어가 제공되므로 이것이 사용되는 경우는 드물 것이다.&lt;br /&gt;
&lt;br /&gt;
====soLinger====&lt;br /&gt;
&lt;br /&gt;
모든 패킷이 목적지(destination)에 확실히 도달하도록 보장하기 위해 &amp;#039;가까운&amp;#039; 연산이 블로킹할 수 있는 시간을 초로 응답하고, 그러한 패킷이 정상적으로 행동한다면 nil을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====soLinger: linger====&lt;br /&gt;
&lt;br /&gt;
모든 패킷이 목적지에 확실히 도달하도록 보장하기 위해 &amp;#039;가까운&amp;#039; 연산이 블로킹할 수 있는 시간을 초로 설정하라. Linger가 nil인 경우, 그러한 패킷은 정상적으로 행동할 것이다.&lt;br /&gt;
&lt;br /&gt;
====soReuseAddr====&lt;br /&gt;
&lt;br /&gt;
다른 소켓이 이 소켓과 같은 로컬 주소로 바인딩될 수 있는지 응답하라. 이 옵션을 활성화할 경우 Internet 포트 번호가 같은 두 개의 소켓을 가질 수 있다; 하지만 시스템은 Internet을 혼동시킬 수 있다는 이유로, 동일하게 명명된 두 개의 소켓을 사용하도록 허용하지 않을 것이다. 해당 옵션이 존재하는 이유는, FTP를 포함한 고수준 Internet 프로토콜이 동일한 소켓 번호를 계속해서 재사용하도록 요구하기 때문이다. &lt;br /&gt;
&lt;br /&gt;
====soReuseAddr: aBoolean====&lt;br /&gt;
&lt;br /&gt;
다른 소켓을 이것과 같은 로컬 주소로 바인딩할 수 있는지 설정하라.&lt;br /&gt;
&lt;br /&gt;
====valueWithoutBuffering: aBlock====&lt;br /&gt;
&lt;br /&gt;
aBlock을 평가하여 그것이 소켓에 작성하는 어떤 데이터든 네트워크로 즉시 전송되도록 보장하라.&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>