구)홈페이지 오탈자 보기
자바 IO & NIO 네트워크 프로그래밍

 

페이지오탈자 내용등록일
45

((p45) 실제 소스 파일 2번째 라인)

ExtendThreadTest.java:


public class ExtendThread extends Thread {

-> class ExtendThread extends Thread {
==>
확인 중(2006년 10월 11일)

2006-10-251
54

((p 54) 소스코드 11~15번째줄)

// 무시한다.
}
}
}
//스레드를 시작한다.
==>
// 무시한다.
}
}
}
//스레드를 시작한다.

2006-10-251
54

((p 54) 소스코드 15번째줄)

}
==>
};


부연설명: t.start() 앞부분에 세미콜론 있어야 컴파일됩니다.

2006-10-251
55

(p.55 소스코드 제목)

[예제 2-7] DeamonThreadTest.java
==>
[예제 2-7] DaemonThreadTest.java

2006-10-251
55

(p 55 소스코드 중)

...

Thread t = new Thread(){

...

}
==>
...

Thread t = new Thread(){

...

}


부연설명: 이 부분에 세미콜론(;)이 있어야 컴파일 오류가 발생하지 않습니다..

2006-10-251
56

(p56 소스코드 중)

...

Thread t = new Thread(){

...

}
==>
...

Thread t = new Thread(){

...

}


부연설명: 이 부분에 세미콜론(;)이 있어야 컴파일 오류가 발생하지 않습니다.

2006-10-251
56

((p 56) 페이지 전체)

setDeamon / isDeamon

-> setDaemon / isDaemon
==>
확인 중(2006년 10월 11일)

2006-10-251
56

((p 56) 첫째줄)

스레드를 시작시키기 전에 setDeamon() 메소드를 start() 메소드로 호출해야 한다는 것이다.

-> 스레드를 시작시키기 전에 setDaemon() 메소드를 호출해야 한다는 것이다.
==>
확인 중(2006년 10월 11일)

2006-10-251
57

(p57 소스코드 중)

...

Thread t = new Thread(){

...

}
==>
...

Thread t = new Thread(){

...

}


부연설명: 이 부분에 세미콜론(;)이 있어야 컴파일 오류가 발생하지 않습니다..

2006-10-251
65

(p65 예제 코드)

public static void swapMethod(
    String Buffer x, StringBuffer y){
    ...
   }
==>
public static void swapMethod(
    StringBuffer x, StringBuffer y){
    ...
   }

2006-10-251
65

((p 65) 그림 2-19 코드)

main 메소드:

Line 1:    Public -> public
Line 4:    SwapMethod -> swapMethod


swapMethod 메소드:

Line 1:    staric -> static
==>
확인 중(2006년 10월 11일)

2006-10-251
72

((p 72) 두번째 문단 둘째줄)

java.nio. charset

-> java.nio.charset
==>
확인 중(2006년 10월 11일)

2006-10-251
102

((p102) 표 4-2)

exists() 메소드 설명:    flase -> false

isDirectory() 메소드 설명:    ture -> true
==>
확인 중(2006년 10월 11일)

2006-10-251
108

(p 108 세번째 문단(?))

type %TMP%
==>
echo %TMP%

2006-10-251
110

((p 110) 그림 4-6)

ByteArraryOutputStream

->ByteArrayOutputStream
==>
확인 중(2006년 10월 11일)

2006-10-251
110

((p 110) 그림 4-6)

ByteArraryInputStream

->ByteArrayInputStream
==>
확인 중(2006년 10월 11일)

2006-10-251
117

((p 117) 예제 코드 7번 라인)

사용법 : java FileView 파일이름

-> 사용법 : java FileView2 파일이름
==>
확인 중(2006년 10월 11일)

2006-10-251
119

((p 119) 예제 코드 28, 31라인)

(catch 문 들여쓰기가 잘못 되어 있습니다.
컴파일에는 이상없지만 보는 사람은 헷갈립니다.)
==>
확인 중(2006년 10월 11일)

2006-10-251
119

((p 119) 첫번째 문단 둘째줄)

물론, try 블록에서 선언해야만

-> 물론, try 블록 밖에서 선언해야만


(try 블록 내에서 선언시 finally문에서 쓸수 없음)
==>
확인 중(2006년 10월 11일)

2006-10-251
126

((p 126) 표 4-13)

메소드

byte[]toByteArray()

->byte[] toByteArray()
==>
확인 중(2006년 10월 11일)

2006-10-251
126

((p 126) 그림 4-11 캡션)

DataInputStreaTest.java

->DataInputStreamTest.java
==>
확인 중(2006년 10월 11일)

2006-10-251
135

((p 135) 소스코드 20행부터)

class SystemStream {

public static void main(String [] args) {
    try {
       int ch;
       while (true) {
       .
       .
       .
       .
==>
class SystemStream {

public static void main(String [] args) {
    try {
       int ch;
       while (true) {
       .
       .
       .
       .
 에서 while문 삭제

2006-10-251
135

(p135 SystemStream.java소스 아래서 5번째)

rt.start();
wt.start();
는 각각 
new Thread(rt).start();
new Thread(wt).start();
로 수정되어야 합니다.

만일 그대로 rt.start()가 되도록 한다면(현재 소스로썬 이것도 괜찮은 방법같이 보입니다.)
ReadThread()를 구현할때 
class ReadThread extends Thread
로써 화이트박스 구현을 하도록 하여야 합니다.

이에 대한 근거는 
Java 1.4 apidoc에 Thread의 클래스 설명부분을 보시면 잘 나와 있습니다.
----------------
(이하 원문번역인용)
thread란, 프로그램내에서의 실행의 thread입니다. Java 가상 머신에서는 어플리케이션은 병렬에 실행되는 복수의 thread를 사용할 수가 있습니다. 

각 thread에는 우선 순위를 붙일 수 있고 있습니다. 우선 순위의 높은 thread는 우선 순위의 낮은 thread보다 우선해 실행됩니다. 게다가 각 thread가 demon로서 마크 되고 있는 경우도 있으면, 되어 있지 않은 경우도 있습니다. 어느 thread로 실행중의 코드가 새로운 Thread 오브젝트를 작성하면(자), 이 새로운 thread에는 그 시점에서는 작성측의 thread의 우선 순위에 동일한 우선 순위가 설정되어 작성측 thread가 demon인 경우에만, demon thread. 

통상, Java 가상 머신이 기동하면(자), (일반적으로는 있는 지정된 클래스의 main 라는 이름이 붙일 수 있었던 메소드를 호출한다) 1 살의 demon thread가 아닌 thread가 존재합니다. Java 가상 머신은 이하의 어떤 것인가가 발생할 때까지 thread를 계속 실행합니다. 

Runtime 클래스의 exit 메소드가 불려 가 시큐러티 매니저가 exit 동작을 허가했을 경우 
run 메소드의 호출로부터 복귀하는 것에 의해, 또는 run 메소드 이외로부터 보내지는 예외를 슬로우 하는 것에 의해, demon thread는 아닌 모든 thread가 종료했을 경우 
새로운 실행의 thread를 작성하려면 2 방법의 방법이 있습니다. 1 개의 방법은 클래스를 Thread 의 서브 클래스이다고 선언하는 것입니다. 이 서브 클래스는 클래스 Thread 의 run 메소드를 오버라이드(override) 하지 않으면 안됩니다. 그러면 서브 클래스의 인스턴스는 할당할 수 있어 기동될 수가 있습니다. 예를 들어, 초기치보다 큰 소수를 계산하는 thread는 다음에 나타내도록(듯이) 해 작성할 수 있습니다. 



--------------------------------------------------------------------------------

     class PrimeThread extends Thread {
         long minPrime;
         PrimeThread(long minPrime) {
             this.minPrime = minPrime;
         }
 
         public void run() {
             // compute primes larger than minPrime
              .  .  .
         }
     }
 
--------------------------------------------------------------------------------

다음에, 이하에 나타내는 코드로 thread를 작성해, thread의 실행을 개시합니다. 


     PrimeThread p = new PrimeThread(143);
     p.start();
 thread를 작성하는 이제(벌써) 1 개의 방법은 Runnable 인터페이스를 구현하는 클래스를 선언하는 것입니다. 그렇다면, 그 클래스는 run 메소드를 구현합니다. 클래스의 인스턴스를 할당할 수 있어Thread 의 작성시에 인수로서 건네받아 개시됩니다. 이 방법에서의 같은 예는 이하에 나타내게 됩니다. 



--------------------------------------------------------------------------------

     class PrimeRun implements Runnable {
         long minPrime;
         PrimeRun(long minPrime) {
             this.minPrime = minPrime;
         }
 
         public void run() {
             // compute primes larger than minPrime
              .  .  .
         }
     }
 
--------------------------------------------------------------------------------

다음에, 이하에 나타내는 코드로 thread를 작성해, thread의 실행을 개시합니다. 


     PrimeRun p = new PrimeRun(143);
     new Thread(p). start();
 각 thread는 식별을 위한 이름을 가집니다. 복수의 thread가 같은 이름을 가지는 일이 있습니다. thread의 작성시에 이름이 지정되지 않으면 thread에는 새로운 이름이 생성됩니다. 



도입된 버젼: 
JDK1. 0 
관련 항목:
Runnable , Runtime.exit(int) , run() , stop()
==>
확인중

2006-10-251
147

((p 147)[표 5-6] 제목)

[표 5-6] FileWiter 클래스 생성자
==>
[표 5-6] FileWriter 클래스 생성자

2006-10-251
155

(p.155 CharArraryReader와 CharArrayWriter 첫 문단)

ByteArrayReader, ByteArrayWriter....
==>
ByteArrayInputStream, ByteArrayOutputStream

2006-10-251
156

((p 156) 표 5-14)

메소드 

public char[] toCharArray()

-> char[] toCharArray()
==>
확인 중(2006년 10월 11일)

2006-10-251
156

((p 156) 1번 제목과 예제코드 26라인)

제목 :

① Char 배열 형태로 만든후

-> ① char 배열 형태로 만든후 

예제 코드 26라인 :

Char[]

-> char[]
==>
확인 중(2006년 10월 11일)

2006-10-251
156

((p 156) 예제코드 27라인)

읽어들인 Char의 수

-> 읽어들인 char의 수

(char는 엄연히 Java의 원시형으로서 대소문자를 구분하고
본문에서도 이 의미로 사용하고 있으므로..)
==>
확인 중(2006년 10월 11일)

2006-10-251
158

((p 158) 첫번째 문단 마지막줄)

BuffereWriter

-> BufferedWriter
==>
확인 중(2006년 10월 11일)

2006-10-251
161

((p 161) 제목 리스트 8, 9번째 줄)

ObjectOutputStreram

-> ObjectOutputStream


ObjectntputStreram

-> ObjectInputStream
==>
확인 중(2006년 10월 11일)

2006-10-251
205

(205소스 부분)

에코 서버 프로그래밍 부분중에서 close부분이 이상한 것 같습니다.
115page에 점으로 표기된 단원의 마지막에 finally블록 안에서 io클래스의 close()메소드를 호출한다.라는 규칙을 적용하게 된다면 
소스는 다음과 같이 바뀌는것을 건의 드립니다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

/*
 * 작성된 날짜: 2006-03-25
 *
 */

public class EchoServer {

public static void main(String[] args) {

Socket sock=null;
BufferedReader br=null;
PrintWriter pw=null;
try {
ServerSocket server = new ServerSocket(10001);
System.out.println("접속을 기다리고 있습니다. ");
sock = server.accept();
InetAddress inetaddr = sock.getInetAddress() ;
System.out.println(inetaddr.getHostAddress()+"로 부터 접속했습니다.");
OutputStream  out = sock.getOutputStream() ;
InputStream in = sock.getInputStream() ;
pw = new PrintWriter(new OutputStreamWriter(out));
br = new BufferedReader(new InputStreamReader(in));
String line = null;
while((line=br.readLine() )!=null){
System.out.println("클라이언트로 부터 전송받은 문자열 : "+line);
pw.println( line);
pw.flush() ;
}
} catch (IOException e) {
e.printStackTrace();
}finally{
pw.close() ;
try {
br.close() ;
sock.close() ;
} catch (IOException e1) {
System.out.println(e1);
}
}
}
}
==>
확인중

2006-10-251
210

((p 210) 두번째 문단 셋째줄)

accet()

-> accept()
==>
확인완료(2006년 10월 12일)

2006-10-251
222

((p 222) 첫번째 박스)

http://localhost/.././../passwd.txt

-> http://localhost/../../../passwd.txt
==>
확인중(2006년 10월 12일)

2006-10-251
239

(239page 소스코드)

아래서 두번째 괄호 주석

WinInputThread 메소드 종료 

WinInputThread 클래스 종료

==>
확인중

2006-10-251
242

(242page 그림 8-25,8-26)

아래 텍스트 입력필드가 빠져 있습니다.
==>
확인중

2006-10-251
249

((p 249) 마지막 문단 첫째줄)

[예제 8-12] ObjectCalculatorServer를 실행한다.

-> [예제 8-12] ObjectCalculatorClient를 실행한다.
==>
확인중(2006년 10월 12일)

2006-10-251
249

((p 249) 첫번째 문단 첫째줄)

OuputStream

-> OutputStream
==>
확인중(2006년 10월 12일)

2006-10-251
256

((p 256) 그림 9-1)

(서버측)

④ DatagramSocket의 Close() 메소드 호출

-> ⑨ DatagramSocket의 Close() 메소드 호출

(p 243 그림에서의 넘버링 체계와 비교바람)
==>
확인중(2006년 10월 12일)

2006-10-251
264

((p 264) 셋째줄)

사용법 : java UDPEchoServer port

-> 사용법 : java UDPTimeServer port
==>
확인중(2006년 10월 12일)

2006-10-251
265

((p 265) 두번째 문단 첫째줄)

2000-04-28 23:20:15 오전

-> 2000-04-28 23:20:15 오후
==>
확인중(2006년 10월 12일)

2006-10-251
266

((p 266) 예제 코드 7 라인)

사용법 : java UDPEchoClient ip port

-> 사용법 : java UDPTimeClient ip port
==>
확인중(2006년 10월 12일)

2006-10-251
275

((p 275) 코드 셋째줄)

사용법 : java WebSpider URL

-> 사용법 : java URLInfo URL
==>
확인중(2006년 6월 13일)

2006-10-251
283

((p 283) 예제코드 8 라인)

사용법 : java WebSpider URL filename

-> 사용법 : java WebSpiderWithURLConnection URL filename
==>
확인중(2006년 6월 13일)

2006-10-251
288

((p 288) 예제코드 다섯째줄)

"w=tot&q="

-> "?w=tot&q="
==>
확인중(2006년 6월 13일)

2006-10-251
288

((p 288) 예제코드 다섯번째줄)

String query = "w=tot&q=" + keyword;    
String u = "http://search.daum.net/cgi-bin/nsp/search.cgi"; 
System.out.println(u + query);

-> 들여쓰기 잘못됨.

(실제 동작에는 아무 문제 없습니다. 인쇄상의 오류만을 지적한것입니다.)
==>
확인중(2006년 6월 13일)

2006-10-251
288

((p 288) 코드 넷째줄)

search.cgi?w=tot&q=%BB%E7%B0%FA

-> //search.cgi?w=tot&q=%BB%E7%B0%FA

(책에서는 인쇄공간이 부족하여 부득이하게 줄을 바꾼 것으로 보이나 "//"은 한줄짜리 주석을 의미하기 때문에 여기서는 해당줄도 주석처리 해야함)
==>
확인중(2006년 6월 13일)

2006-10-251
292

((p 292) 예제코드 15~16라인)

//http://search.daum.net/cgi-bin/nsp/
search.cgi?w=tot&q=%BB%E7%B0%FA

-> 삭제


(그리고 여기도 밑으로 세 라인 들여쓰기 잘못되어 있습니다.)
==>
확인중(2006년 6월 13일)

2006-10-251
294

((p 294) 세번째 문단)

"=%BB%%E7%B0%FA"라는 문자열이

->"%BB%%E7%B0%FA"라는 문자열이
==>
확인중(2006년 6월 13일)

2006-10-251
297

((p 297) 두번째 문단 둘째줄)

URlEncoderTest

->URLEncoderTest
==>
확인중(2006년 6월 13일)

2006-10-251
301

((p 301) 첫번째 여기서 잠깐)

클래스 D(244.0.0.0~239.255.255.255)에

-> 클래스 D(224.0.0.0~239.255.255.255)에
==>
확인중(2006년 6월 13일)

2006-10-251
311

((p 311) 첫번째 문단 둘째줄)

actionPerfoemd()

-> actionPerformed()
==>
확인완(2006년 6월 13일)

2006-10-251
323

((p 323) 여기서 잠깐 부분)

메모리 26B다. 그리고 데스트 파일 크기는
==>
메모리 2GB다. 그리고 테스트 파일 크기는

2006-10-251
323

(p323 , 여기서 잠깐 둘째줄)

듀얼, 메모리 26B다.
==>
듀얼, 메모리 2GB다.

2006-10-251
323

(p323, 여기서 잠깐 둘째줄)

데스트 파일 크기는 15MB...
==>
테스트 파일 크기는 642KB...

2006-10-251
323

((p 323) 표 12-1)

클래스

smallBuffer

-> SmallBuffer
==>
확인중(2006년 10월 13일)

2006-10-251
335

((p 335) 그림 13-1)

Byteorder

->ByteOrder
==>
확인중(2006년 10월 13일)

2006-10-251
337

((p 337) 그림 13-2 상단의 박스)

0 ← mark ← position ← limit ← capacity  

-> 0 <= mark <= position <= limit <= capacity  

(각 관계는 화살표가 아니라 크기를 나타내는 부등호 관계임. Java API의 Buffer클래스 설명 참고)
==>
확인중(2006년 10월 13일)

2006-10-251
338

((p 358) 그림 13-21)

-> 예제와 틀림 (그림 13-19와 동일한 그림)
==>
확인중(2006년 10월 13일)

2006-10-251
338

((p 388) 그림 14-6)

-> 둘째줄 Limit 위치는 끝으로, 마지막줄은 Limit 위치는 ago. 직후여야 할 것 같습니다.
==>
확인중(2006년 10월 17일)

2006-10-251
345

((p 345) 그림 13-9)

Byte[] bulk

-> byte[] bulk
==>
확인중(2006년 10월 13일)

2006-10-251
347

((p 347) 그림 13-11)

Byte[] bulk

->byte[] bulk
==>
확인중(2006년 10월 13일)

2006-10-251
349

((p.349) [그림13-13])

ByteBuffer aBuf = ByteBuffer.allocate(10);
ByteBuffer bBuf = ByteBuffer.allocate(5);
     ...
aBuf.put(Buf);
==>
ByteBuffer aBuf = ByteBuffer.allocate(10);
ByteBuffer bBuf = ByteBuffer.allocate(5);
     ...
aBuf.put(bBuf);

2006-10-251
355

((p 355) 예제코드 세번째 문단 셋째줄)

clea 한 후의

-> clear 한 후의
==>
확인완료(2006년 10월 13일)

2006-10-251
372

((p 372) 첫번째 문단 첫째줄)

warp()

-> wrap()
==>
확인완(2006년 10월 13일)

2006-10-251
381

((p 381) 밑에서 셋째줄)

write once, run anyway

-> write once, run anywhere
==>
확인완(2006년 10월 13일)

2006-10-251
382

((p 382) 두번째 박스 6라인)

public void close() throws IOException;

-> 들여쓰기 잘못됨
==>
확인완(2006년 10월 13일)

2006-10-251
398

((p 398) 첫번째 API)

public abstract int read(ByteBuffer[] dst)
public abstract int read(ByteBuffer[] dst, int offset, int length)

public abstract int write(ByteBuffer src)
public abstract int write(ByteBuffer src, int offset, int length)

->

public final long read(ByteBuffer[] dsts)
public abstract long read(ByteBuffer[] dsts, int offset, int length)

public final long write(ByteBuffer[] srcs)
public abstract long write(ByteBuffer[] srcs, int offset, int length)


(참고: http://java.sun.com/j2se/1.4.2/docs/api/java/nio/channels/FileChannel.html)
==>
확인중(2006년 10월 16일)

2006-10-251
401

((p 401) 다섯번째 문단 넷째줄)

ture -> true
==>
확인완료(2006년 10월 16일)

2006-10-251
414

((p 414) 첫번째 문단 셋째줄)

메모리 26B

-> 메모리 2GB
==>
확인중(2006년 10월 16일)

2006-10-251
424

((p 424) 첫번째 박스 다섯째줄)

public abstract ServerSocket accept() throws IOException;
public final int validOps();

-> 들여쓰기 잘못됨
==>
확인완(2006년 10월 17일)

2006-10-251
428

((p 428) 첫번째 문단)

SocketChannel sc = SocketChannel.open();
sc.connect(new InetSocketAddress("host IP", port));

또한 다음도 같은 동작을 한다.

SocketChannel sc = SocketChannel.open();
sc.connect(new InetSocketAddress("host IP", port));

-> 위 아래 두코드 동일.
==>
확인중(2006년 10월 17일)

2006-10-251
442

((p 442) 그림 위로 네번째줄)

BufferedRead

-> BufferedReader
==>
확인중(2006년 10월 17일)

2006-10-251
443

((p 443) 세번째 문단 셋째줄)

센트리노 1.3M, 512M

-> 센트리노 1.3GHz, 512M
==>
확인완(2006년 10월 17일)

2006-10-251
443

((p 443) 박스 아래 첫째줄)

그리고 서버로에서

-> 그리고 서버에서
==>
확인중(2006년 10월 17일)

2006-10-251
445

((p 445) 첫번째 문단 마지막줄)

라이브러로서

-> 라이브러리로서
==>
확인완(2006년 10월 17일)

2006-10-251
448

((p 448) 두번째 문단 둘째줄)

java.nio.channel.spi.AbstractSelectableChannel

-> java.nio.channels.spi.AbstractSelectableChannel
==>
확인중(2006년 10월 17일)

2006-10-251
13449

(449페이지)

public static final int OP_ACCEPT= 1 << 3;
public static final int OP_CONNECT=1 << 4;


=>

public static final int OP_ACCEPT= 1 << 4;
public static final int OP_CONNECT=1 << 3;

2007-08-093
455

((p 455) 마지막 문단 셋째줄)

attache(Object ob)

-> attach(Object ob)
==>
확인중(2006년 10월 17일)

2006-10-251
455

((p 455) 마지막에서 두번째 문단 둘째줄)

attache(Object ob)

-> attach(Object ob)
==>
확인중(2006년 10월 17일)

2006-10-251
470

((p 470) 예제코드 밑에서 셋째줄)

SimpleChatClient.startServer(

-> SimpleChatClient.startServer()
==>
확인중(2006년 10월 24일)

2006-10-251
482

((p 482) 첫번째 문단 다섯째줄)

Processe

-> Process
==>
확인중(2006년 10월 18일)

2006-10-251
482

((p 482) 첫번째 문단 넷째줄)

Processe

-> Process
==>
확인중(2006년 10월 18일)

2006-10-251
484

((p 484) 예제 16-1 제목)

AdvancedchatServer.java

-> AdvancedChatServer.java
==>
확인중(2006년 10월 18일)

2006-10-251
484

((p 484) 첫번째 문단 일곱째줄)

cafeLec ture

-> cafeLecture
==>
확인중(2006년 10월 18일)

2006-10-251
490

((p 490) PoolManager 클래스)

-> 
    public static PoolManager getInstance() {
        if (instance == null) {
            synchronized (PoolManager.class) {
                instance = new PoolManager();
            }
        }
        return instance;
    }

(싱글톤 패턴을 위한 메소드 하나가 빠졌음)
==>
확인중(2006년 10월 18일)

2006-10-251
496

((p 496) 첫번째 문단 둘째줄)

큐에 집에 넣는다는 

-> 큐에 집어 넣는다는
==>
확인중(2006년 10월 18일)

2006-10-251
508

((p 508) 현장 Point 둘째줄)

보안적인 관계

-> 보완적인 관계
==>
확인중(2006년 10월 18일)

2006-10-251
511

((p 511) 그림)

RMI Registy

-> RMI Registry
==>
확인중(2006년 10월 18일)

2006-10-251
518

((p 518) 세번째 문단 첫째줄)

록업(lookup)

-> 룩업(lookup)
==>
확인중(2006년 10월 18일)

2006-10-251
519

((p 519) 첫번째 박스)

javac *.java

-> javac RMIHello*.java


(그대로해도 상관없지만 아래 그림 17-5에서는 RMIHello*로 하고 있음)
==>
확인중(2006년 10월 18일)

2006-10-251
520

((p 520) 마지막 줄)

[그림 17-6]과 같이

-> [그림 17-7]과 같이
==>
확인중(2006년 10월 18일)

2006-10-251
524

((p 524) 예제코드 밑에서 세번째줄)

return i *  j;

-> return i -  j;
==>
확인중(2006년 10월 18일)

2006-10-251
526

((p 526) 예제코드 둘째줄)

equals("/")

-> equals("-")
==>
확인중(2006년 10월 18일)

2006-10-251
530

((p 530) 로그아웃의 기능 2번)

arraylist

-> ArrayList
==>
확인중(2006년 10월 18일)

2006-10-251
530

((p 530) 로그아웃의 기능 2번)

discoonect()

-> disconnect()
==>
확인중(2006년 10월 18일)

2006-10-251
539

((p 539) 밑에서 둘째줄)

Contect 객체를 사용한다.

-> Context 객체를 사용한다.
==>
확인중(2006년 10월 18일)

2006-10-251
540

((p 540) 박스 첫째행)

(Remote, remote)

-> (Remote remote)
==>
확인중(2006년 10월 18일)

2006-10-251
546

((p 546) 그림 17-23 제목)

tnameserv 실행

-> 원격 클라이언트 실행
==>
확인중(2006년 10월 18일)

2006-10-251