Chapter 8 Advanced Concept

Slides:



Advertisements
Similar presentations
AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www. nms4you.com 1 AMAN2002 추가 기능 실습 Chapter 13:
Advertisements

Python Socket/HTTP overmania. 목표  소켓을 이용하여 기본적인 서버 - 클라이언트 모델을 구현할 수 있다.  간단한 웹서버를 소켓을 이용하여 작성할 수 있다.
화일구조.
Ubiquitous Computing Lab NS-3 Basic 박성진
제 22 장 HTTP 22.1 HTTP 트랜잭션 22.2 요청 메시지 22.3 응답 메시지 22.4 헤더 22.5 예제
Chapter 7 ARP and RARP.
TCP/IP 통신망 특론 3장 인터넷프로토콜( IP ).
Internet Protocol Version4
Chapter 8 Authorization
4. 데이터 기능 유형.
사용자 메뉴얼 차량용 4CH 블랙박스 매뉴얼 버전 : Version 2.1 Hardware Version : 2.0
Understanding of Socket and File I/O
Next Generation: IPv6 and ICMPv6
암호화 기술(SSL, IPSec) 손재성 권기읍 안복선 최준혁
22 장 프로세스간 전달 : UDP와 TCP 22.1 프로세스간 전달 22.2 사용자 데이터그램 프로토콜
사용자 메뉴얼 차량용 4CH 블랙박스 매뉴얼 버전 : Version 1.1 Hardware Version : 1.0
기본 컴퓨터 프로그래밍 Lecture #6.
10장. 웹 서비스 공격 (Attacking Web Service)
Dept. of Computer Engineering, Hannam Univ. Won Goo Lee
20 장 네트워크층 프로토콜 : ARP, IPv4, ICMP, IPv6, ICMPv6
Internet Group Management Protocol (IGMP)
Delivery and Routing of IP Packets
Internet Control Message Protocol (ICMP)
Toad for Oracle 설치 방법.
Toad for SQL Server 제품 소개서 – 프로넷소프트㈜.
Minicom,tftp,nfs설정,vnc설정
PART 01 개념 컴퓨터 네트워크 Chapter 3 OSI 참조모델과 인터넷 임효택.
제 18 장 TCP/IP 연결 확립과 종료 정보통신연구실.
제 16 장 DNS 16.1 네임공간 16.2 도메인 네임공간 16.3 네임공간의 분포 16.4 인터넷에서 사용되는 DNS
Domain Name System (DNS)
Chapter 02 네트워크에 대한 이해.
Network Lab. Seoung Hyeon, Lee
Part 라우터 1. 라우터 장비의 이해 2. 라우터 네트워크 환경 설정 3. 라우팅 테이블 설정과 점검.
호스트이름과 네트워크이름 찾기 (Hostname and Network Name Lookups)
1. SNMP SNMP(Simple Network Management Protocol)은 네트워크의 중앙집중화된 관리를 목적으로 만들어졌으며, 현재까지 버전 3까지 세가지 버전이 만들어졌다. 각 버전의 차이는 대부분 보안상의 문제에 의한 것이다. SNMP 발전 과정 버전.
Processing resulting output
5. 네트워킹 사용자 표시 : users/ rusers/who/w users 지역 호스트 상에 있는 사용자의 간단한 목록 표시
Socket Address Structure and Byte Ordering Functions
Socket Address Structure and Byte Ordering Functions
PART 01 개념 컴퓨터 네트워크 Chapter 3 OSI 참조모델과 인터넷 임효택.
제 21 장 TCP 타임아웃과 재전송.
제 21 장 TCP 타임아웃과 재전송 정보통신연구실.
웹 애플리케이션 로깅 및 오류 처리 기법 웹 애플리케이션 로깅의 필요성을 이해한다 로깅의 분류 및 구현 방안을 학습한다
19 장 호스트 대 호스트 전송: 인터네트워킹, 주소 지정, 라우팅
SOAP 클라이언트 개발 Guide
사용법 1. NLog 설치 2. Configuration, Rule, Target 3. 기본 API 사용법
Network Security WireShark를 활용한 프로토콜 분석 II.
IP(Internet Protocol)
VoceEye Server(MDB Admin)
Chapter 15 Transmission Control Protocol (TCP).
TCP/IP 인터네트워킹 INTERNETWORKING with TCP/IP <vol
네트워크와 소켓 프로그래밍 Chapter 01. * 학습목표 TCP/IP 프로토콜의 동작 원리를 개관 소켓의 기본 개념을 이해
Transmission Control Protocol (TCP)
WSDL 의공학과 3학년 김 기 흔.
연습 문제 풀이 헥사 값의 의미 FTP 응답 코드의 의미 분석 (a) D 0A (b)
User Datagram Protocol (UDP)
TCP/IP 네트워크 구조 TCP/IP 개요 TCP/IP 프로토콜 한빛미디어(주).
JFS operation HP Korea / Operations JFS operation.
7주차 FPGA 보드 사용법.
Department of Computer Engineering
Operating System Multiple Access Chatting Program using Multithread
화일구조.
제 11장 User Datagram Protocol(UDP)
TCP/IP 인터네트워킹 INTERNETWORKING with TCP/IP <vol
제 9 장 ICMP 9.1 메시지 유형 9.2 메시지 형식 9.3 오류 보고 9.4 질의 9.5 검사합 9.6 ICMP 설계
제 14 장 응용 계층과 클라이언트-서버 모델 클라이언트-서버 모델 14.2 동시성 14.3 프로세스 14.4 요약.
Internet 인공지능연구실
Department of Computer Engineering
Lady chatterley 윤형석 장홍현 조재범.
6. 오류 보고 체계 (ICMP) (6장. 인터넷과 IP)
Presentation transcript:

Chapter 8 Advanced Concept 소켓 프로그래밍

Advanced Concept 소켓 옵션 소켓 예외 로깅

소켓 옵션 소켓 옵션 Socket 클래스에서 제공되는 두 개의 소켓 옵션 메서드 소켓 옵션 메서드가 가지는 두 개의 필수 인자 소켓의 작동을 제어하는 속성 높은 레벨의 소켓 추상 클래스에서는 직접 접근 불가 Socket 클래스에서 제공되는 두 개의 소켓 옵션 메서드 GetSocketOption() – 소켓 옵션의 값을 읽어옴 SetSocketOption() – 소켓 옵션의 값을 설정 소켓 옵션 메서드가 가지는 두 개의 필수 인자 SocketOptionLevel 소켓 옵션의 설정 적용 범위를 정의 SocketOptionName 적용할 옵션의 이름을 의미 예제 프로그램 : MulticastSenderOpt.cs, MulticastReceiverOpt.cs

소켓 옵션 SocketOptionLevel Level Description IP IPv4 소켓만 지정 IPv6 모든 소켓 Tcp TCP 소켓만 지정 Udp UDP 소켓만 지정

소켓 옵션 SocketOptionName SocketOptionName AcceptConnection DropMembership MulticastInterface SendBuffer AddMembership DropSourceMembership MulticastLoopback SendLowWater AddSourceMembership Error MulticastTimeToLive SendTimeout BlockSource ExclusiveAddressUse NoChecksum Type Broadcast Expedited NoDelay TypeOfService BsdUrgent HeaderIncluded OutOfBandInline UnblockSource ChecksumCoverage HopLimit PacketInformation UpdateAcceptContext Debug IPOptions ReceiveBuffer UpdateConnectContext DontFragment IpTimeToLive ReceiveLowWater UseLoopback DontLinger KeepAlive ReceiveTimeout DontRoute Linger ReuseAddress

소켓 예외 SocketException 클래스 에러코드는 Winsock 에러코드에서 유래 System.Net.Sockets 네임스페이스는 소켓 오류 발생 시에 throw 되는 SocketException 클래스를 제공 에러코드는 Winsock 에러코드에서 유래 에러코드를 이용하여 소켓 에러를 처리 할 수 있음

소켓 예외 Winsock 에러 코드 Code Name Meaning 10004 WSAEINTR Interrupted function call. 10040 WSAEMSGSIZE Message too long. 10009 WSAEBADF File handle is not valid. 10041 WSAEPROTOTYPE Protocol wrong type for socket. 10013 WSAEACCES Permission denied. 10042 WSAENOPROTOOPT Bad protocol option. 10014 WSAEFAULT Bad address. 10043 WSAEPROTONOSUPPORT Protocol not supported. 10022 WSAEINVAL Invalid argument. 10044 WSAESOCKTNOSUPPORT Socket type not supported. 10024 WSAEMFILE Too many open files. 10045 WSAEOPNOTSUPP Operation not supported. 10035 WSAEWOULDBLOCK Resource temporarily unavailable. 10046 WSAEPFNOSUPPORT Protocol family not supported. 10036 WSAEINPROGRESS Operation now in progress. 10047 WSAEAFNOSUPPORT Address family not supported by protocol family. 10037 WSAEALREADY Operation already in progress. 10048 WSAEADDRINUSE Address already in use. 10038 WSAENOTSOCK Socket operation on nonsocket. 10049 WSAEADDRNOTAVAIL Cannot assign requested address. 10039 WSAEDESTADDRREQ Destination address required. 10050 WSAENETDOWN Network is down.

소켓 예외 Winsock 에러 코드 Code Name Meaning 10051 WSAENETUNREACH Network is unreachable. 10062 WSAELOOP Cannot translate name. 10052 WSAENETRESET Network dropped connection on reset. 10063 WSAENAMETOOLONG Name too long. 10053 WSAECONNABORTED Software caused connection abort. 10064 WSAEHOSTDOWN Host is down. 10054 WSAECONNRESET Connection reset by peer. 10065 WSAEHOSTUNREACH No route to host. 10055 WSAENOBUFS No buffer space available. 10066 WSAENOTEMPTY Directory not empty. 10056 WSAEISCONN Socket is already connected. 10067 WSAEPROCLIM Too many processes. 10057 WSAENOTCONN Socket is not connected. 10068 WSAEUSERS User quota exceeded. 10058 WSAESHUTDOWN Cannot send after socket shutdown. 10069 WSAEDQUOT Disk quota exceeded. 10059 WSAETOOMANYREFS Too many references. 10070 WSAESTALE Stale file handle reference. 10060 WSAETIMEDOUT Connection timed out. 10071 WSAEREMOTE Item is remote. 10061 WSAECONNREFUSED Connection refused. 10091 WSASYSNOTREADY Network subsystem is unavailable.

소켓 예외 Winsock 에러 코드 Code Name Meaning 10092 WSAVERNOTSUPPORTED Winsock.dll version out of range. 10111 WSA_E_CANCELLED Call was canceled. 10093 WSANOTINITIALISED Successful WSAStartup not yet performed. 10112 WSAEREFUSED Database query was refused. 10101 WSAEDISCON Graceful shutdown in progress. 11001 WSAHOST_NOT_FOUND Host not found. 10102 WSAENOMORE No more results. 11002 WSATRY_AGAIN Nonauthoritative host not found. 10103 WSAECANCELLED Call has been canceled. 11003 WSANO_RECOVERY This is a nonrecoverable error. 10104 WSAEINVALIDPROCTABLE Procedure call table is invalid. 11004 WSANO_DATA Valid name, no data record of requested type. 10105 WSAEINVALIDPROVIDER Service provider is invalid. * WSA_INVALID_HANDLE Specified event object handle is invalid. 10106 WSAEPROVIDERFAILEDINIT Service provider failed to initialize. * WSA_NOT_ENOUGH_MEMORY Insufficient memory available. 10107 WSASYSCALLFAILURE System call failure. * WSA_INVALID_PARAMETER One or more parameters are invalid. 10108 WSASERVICE_NOT_FOUND Service not found. * WSA_OPERATION_ABORTED Overlapped operation aborted. 10109 WSATYPE_NOT_FOUND Class type not found. * WSA_IO_INCOMPLETE Overlapped I/O event object not in signaled state. 10110 WSA_E_NO_MORE * WSA_IO_PENDING Overlapped operations will complete later.

로깅 프로그램이 어떠한 에러를 가지고 있을 경우에 에러를 조사하고자 하는 프로그래머에게는 최종사용자를 위해 출력된 메시지만으로는 정보가 충분하지 않음 로깅 사용자가 프로그램을 사용하는 동안 디버깅에 관한 추가 정보는 따로 로그파일에 저장 로깅 구현의 어려움 소켓 프로그램과 파일 로깅에 영향을 줄 수 있는 수많은 요소들을 고려해야 하기 때문 해결 - NLog 쉽고 간단하게 사용할 수 있는 로깅 라이브러리

로깅 NLog NLog의 사용 .NET을 위해 만들어진 오픈 소스 로깅 API 콘솔 로깅과 파일 로깅 기능을 프로그램에 추가할 수 있음 http://www.nlog-project.org/ 에서 무료로 다운로드 가능 NLog의 사용 NLog 인스톨 후, 로깅 API를 사용하기 위해 솔루션 탐색기에서 Add Reference (참조 추가)를 해주어야 함 .NET 탭에서 NLog 라이브러리를 찾아서 추가 .NET 탬에서 NLog 라이브러리가 보이지 않을 경우, Browse(찾아보기)를 통해 직접 NLog.dll 파일을 찾아서 추가

로깅 참조 추가 (Add Reference)

로깅 프로그램 내에 NLog 로깅 기능을 구현하기 위한 설정파일 정의 우선 솔루션 탐색기에서 프로젝트에 새로운 항목을 추가하여 텍스트파일을 생성 아래와 같은 XML 문법을 사용하여 설정파일을 작성 작성한 설정 파일은 파일속성을 통해 Copy to Output Directory (출력 디렉터리로 복사) 항목을 Copy always (항상 복사)로 설정 <?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">   <targets> <target name="file" xsi:type="File" fileName="log.txt" /> </targets>   <rules> <logger name="*" minlevel="Debug" writeTo="file" /> </rules> </nlog>

로깅 설정파일 속성 변경

로깅 프로젝트에 설정파일 추가가 완료되면 소스코드에서 로거를 사용할 수 있음 프로그램의 소스코드 내에서 로거 초기화 프로젝트에 설정파일 추가가 완료되면 소스코드에서 로거를 사용할 수 있음 프로그램의 소스코드 내에서 로거 초기화 using NLog; // using directive for NLog public class Program { // get a logger using current class name static Logger logger = LogManager.GetCurrentClassLogger(); static void SomeMethod() logger.Debug("Debug message"); }

로깅 Logger 객체를 생성한 후로는 로거에 메시지를 추가할 수 있음 로그 엔트리를 추가할 때에는 로그레벨을 선택하여 추가할 수 있음 로그레벨 메시지의 의도나 심각성을 나타내기 위해 사용 나중에 프로그램의 실행흐름을 검토할 때에 메시지를 분류하기 위한 효과적인 방법이기도 함 로그레벨은 설정파일의 설정을 통해서 각각 다르게 처리할 수 있음 예제 프로그램 : POP3ClientLog.cs

로깅 NLog 로그 레벨 Level Description Debug 디버깅을 위한 진단 메시지 Error 논리 또는 실행시간 오류 Fatal 비정상적인 종류를 일으키는 심각한 오류 Info 각종 정보 Trace Debug 보다 좀 더 깊이 있고 세밀한 진단 정보 Warn 경고 메시지