열혈 TCP / IP 프로그래밍
- 저자: 윤성우
- 출판사: 오렌지 미디어
- 기간: 2016.07.13 ~2016.07.15
키워드
네트워크 프로그래밍
- TCP / IP
- Socket Options
- Linux 기반의 네트워크 프로그래밍
- Windows 기반의 네트워크 프로그래밍
본것
네트워크 프로그래밍의 기초에 대한 설명이 단계별로 잘 되어 있는 책이라는 생각이듭니다.
소켓(Socket), 주소체계, TCP, UDP, Gracefull Shutdown, 소켓 옵션, 서버 아키텍쳐등 많은 내용이 아주 체계적으로 잘 되어 있습니다.
그리고 Linux와 Windows에서 다르게 구현 되는 부분을 잘 설명해 놨기 때문에 두가지 환경에서 모두 구현하는데 도움이 될 만한 책인 것 같습니다.
책 중간에 나오는 잠시 JAVA 얘기를: 열려있는 사고를 지니자! 는 간략하지만 제가 느끼는 부분과 비슷한 내용인 것 같습니다.
예전에 학원 강좌에서 Java 네트워크 부분에서 Java에서는 소켓을 연결하지 아주 쉽습니다.
Socket s = new Socket("192.168.10.1", 8888);
위와 같이만 하면 연결 끝입니다. 이런 내용을 듣고 네트워크 프로그래밍 뭐 별거 아니네...
이런 생각을 했는데 프로그래밍을 하면 할 수록 네트워크 부분은 점점 어려워 지는 것 같습니다.
깨달은것
멀티 프로세스 방식은 Java로 서버 개발을 하면서 사용한 적이 없고 멀티 플렉싱 방식은 Java NIO 패키지의 비동기 소켓으로 예제 정도만 구현을 해봤는데 이전 보다 조금 더 알게 된 것 같습니다.
그리고 Windows IOCP는 예전 한국 리눅스 유저 그룹 에서 EPOLL과 열딘 토론의 글을 본적이 있어서 관심은 있었지만 실제로 사용해 본적이 없어 어떤 시스템이라는 막연한 부분이 있었는데 대략적으로 어떤 흐름이다라는 것은 알게 되었습니다.
적용할 것
- 멀티프로세스 방식, 멀티플렉싱 방식 그리고 멀티 스레드 방식의 서버를 각각 구현해 성능 테스트를 해보자.
- Windows IOCP 서버를 구현해보자.
네트워크프로그래밍
강좌에서 받은 Windows IOCP 배틀넷 서버 소스를 분석해보자.