책제목 : 윤성우의 열혈 TCP/IP 소켓 프로그래밍
             (윤성우 저 열혈강의 TCP/IP 소켓 프로그래밍 개정판)
ISBN : 978-89-960940-3-6
발행일 : 2009년 12월
판형 : B5
저자 : 윤 성 우
page : 560 page
정가 : 26,000
 
 
최근에 발견된 오탈자 입니다.
페이지 위치 오탈자 내용
132   그림 05-1의 아랫부분

1바이트 데이 블록
--->
1바이트 데이 블록

306 peek_recv.c 의 실행결과
1번째 줄

root@my_linux:/tcpip# peek_recv.c -o recv
--->
root@my_linux:/tcpip# gcc peek_recv.c -o recv

322 news_sender.c 의 41~43행

}
close(send_sock);
return 0;

--->

}
fclose(fp);
close(send_sock);
return 0;

382   위에서 10번째 줄

이 변수의 접근을 위해서는 헤더파일 error.h 를 포함해야 한다.

--->

이 변수의 접근을 위해서는 헤더파일 errno.h 를 포함해야 한다.

524 IOCPEchoServ_win.c: main함수 의 해설 47행

WSARecv 함수를 호출하면서 일곱 번째 인자로
--->
WSARecv 함수를 호출하면서 여섯 번째 인자로

아래의 내용은 5쇄 이후 수정되었습니다.
페이지 위치 오탈자 내용
39   bind 함수 원형

성공 시 소켓 핸들, 실패 시 SOCKET_ERROR 반환
--->
성공 시 0, 실패 시 SOCKET_ERROR 반환

74    endian_conv.c 의 1 ~ 4행

#include < stdio.h >

int main(int argc, char *argv[])
{

--->

#include < stdio.h >
#include < arpa/inet.h >

int main(int argc, char *argv[])
{

100 listen 함수의 원형 설명부분

#include < sys/type.h >
--->
#include < sys/socket.h >

105   connect 함수 원형 설명부분

int connect(int sock , const struct sockaddr * servaddr , socklen_t addrlen);
     -> 성공 시 생성된 소켓의 파일 디스크립터, 실패 시 -1 반환

--->

int connect(int sock , struct sockaddr * servaddr , socklen_t addrlen);
     -> 성공 시 0, 실패 시 -1 반환

128, 129 128 page 실행결과 : echo_client.c one


129 page 실행결과 : echo_client.c two

실행결과 : echo_client.c one          ** 128 페이지**
실행결과 : echo_client.c two          ** 129 페이지**

--->

실행결과 : op_client.c one          ** 128 페이지**
실행결과 : op_client.c two          ** 129 페이지**

520 520page 아래에서 1번째 줄

함수가 호출될 때 전달되는 네 번째 인자 값이다
--->
함수가 호출될 때 전달되는 세 번째 인자 값이다

아래의 내용은 4쇄 이후 수정되었습니다.
페이지 위치 오탈자 내용
43   hello_client_wic.c 의 25행

ErrorHandling("hSocketet() error");
--->
ErrorHandling("socket() error");

105 connect 함수의 원형 설명 부분

servaddr   연결요청 한 ~ 클라이언트의 주소정보가 채워진다.
--->
servaddr   연결요청 할 서버의 주소정보를 담은 변수의 주소 값 전달


addrlen   두 번째 매개변수 ~ 바이트 단위로 계산되어 채워진다.
--->
addrlen   두 번째 매개변수 servaddr에 전달된 주소의 변수 크기를
          바이트 단위로 전달

152 recvfrom 함수의 원형 설명 부분

addrlen   매개변수 from으로 전달된 주소 값의 구조체 변수의 크기 전달.
--->
addrlen   매개변수 from으로 전달된 주소에 해당하는 구조체 변수의
           크기정보를 담고 있는 변수의 주소값 전달.

257   제목의 영문표기 변경

(Inner Process Communication)
--->
(Inter Process Communication)

344 344page 중간부분

참고로 파일 디스크립터에는 파일모드가 ~ 두 가지 모두 동일한 파일 디스크립터가 반환된다.
--->

내용 삭제...(잘못된 내용이므로 삭제)

354 sep_serv.c 의 40행

puts(buf, stdout);

--->

fputs(buf, stdout);

461 461page 위에서 2번째 줄

auto-reset 모드의 Event 오브젝트가 생성되고

--->

manual-reset 모드의 Event 오브젝트가 생성되고

514 514page 위에서 11번째 줄

ReadCompRoutine 함수가 호출되면 WSASend 함수를 호출하면서 넌-블로킹 모드로 데이터가 수신되게 하고, 수신이 완료되면 WriteCompRoutine 함수가 호울되게 한다.

--->

ReadCompRoutine 함수가 호출되면 WSASend 함수를 호출하면서 넌-블로킹 모드로 데이터가 송신되게 하고, 송신이 완료되면 WriteCompRoutine 함수가 호울되게 한다.

아래의 내용은 3쇄 이후 수정되었습니다.
페이지 위치 오탈자 내용
39   bind 함수 원형

성공 시 소켓 핸들, 실패 시 INVALID_SOCKET 반환
--->
성공 시 소켓 핸들, 실패 시 SOCKET_ERROR 반환

60   60page 27행

ErrorHandling("hSocketet() error");
--->
ErrorHandling("hSocket() error");

60   60page 42행

break;   …… 삭제(실행되지 않으므로 삭제)

320   320page 아래에서 12번째 줄

setsockopt(send_sock, IPPROTO_IP, IP_MULTICAST_TTL, (void*)&time_live, sizeof(time_live);
--->
setsockopt(send_sock, IPPROTO_IP, IP_MULTICAST_TTL, (void*)&time_live, sizeof(time_live));

481 AsynNotiEchoServ_win.c Two의 1~2번째 줄

hServSock=socket(PF_INET, SOCK_STREAM,0);
servAdr.sin_family=AF_INET;
--->
hServSock=socket(PF_INET, SOCK_STREAM,0);
memset(&servAdr, 0 , sizeof(servAdr) );
servAdr.sin_family=AF_INET;

523 IOCPEchoServ_win.c : main 함수의 20, 21행

hServSock=WSASocket(AF_INET, SOCK_STREAM, 0, NULL, 0,
                                 WSA_FLAG_OVERLAPPED);
servAdr.sin_family=AF_INET;

--->

hServSock=WSASocket(AF_INET, SOCK_STREAM, 0, NULL, 0,
                                 WSA_FLAG_OVERLAPPED);
memset(&servAdr, 0, sizeof(servAdr) );
servAdr.sin_family=AF_INET;

아래의 내용은 2쇄 이후 수정되었습니다.
페이지 위치 오탈자 내용
24   hello_client.c의 해설 31행

connet 함수호출을 통해서
--->
connect 함수호출을 통해서

56   tcp_client.c의 34행

break;   …… 삭제(실행되지 않으므로 삭제)

96   "이해하고 넘어가세요!"의
  1번째 줄

프로토콜을 계층화해서 얻게 되는 장정 에는
--->
프로토콜을 계층화해서 얻게 되는장점 에는

105  connect 함수의 원형 설명부분
 (매개변수 servaddr 설명부분)

연결요청 한 클라이언트의 주소정보를 담을 변수의 주소 값 전달
--->
연결요청 할 서버의 주소정보를 담은 변수의 주소 값 전달

188  h_addr_list 설명부분 1번째 줄

이 멤버를 통해서 도메인 이름에 대한 IP주소가 문자열의 형태로 반환된다.
--->
이 멤버를 통해서 도메인 이름에 대한 IP주소가 정수의 형태로 반환된다.

473   473page 아래에서 1번째 줄

때문 이 함수를 가리켜 다음과 같이
--->
때문 이 함수를 가리켜 다음과 같이

488
  488page 그림 22-1

socket A 관점에서 IO 중첩구간
--->
쓰레드 관점에서 IO 중첩구간
520   520page 위에서 4번째 줄

CreateIoCompletionPort((HANDLE)hSock, hCompletionPort , (Dword)ioInfo, 0);
--->
CreateIoCompletionPort((HANDLE)hSock, hCpObject , (Dword)ioInfo, 0);

520
  520page 위에서 6번째 줄

이에 대한 정보가 핸들 hCpObjectrk에 해당하는
--->
이에 대한 정보가 핸들 hCpObject에 해당하는