티스토리 뷰
소켓 옵션의 값을 변경함으로써 소켓의 수신버퍼 크기 변경 가능
getsockopt() : 소켓의 옵션 값을 참조
setsockopt() : 소켓의 옵션 값을 지정
int getsockopt(int socket, int level, int optName, void *optVal, Unsigned int * optLen)
int setsockopt(int socket, int level, int optName, const void *optVal, Unsigned int * optLen)
--- 소켓 버퍼크기 지정 프로그램 ---
int rcvBufferSize;
int sockOptSize;
sockOptSize = sizeof(rcvBufferSize);
if(getsockopt (sock, SOL_SOCKET, SO_RCVBUF, &rcvBufferSize, &sockOptSize) <0)
DieWithError("");
..... 생략됨
-----------------------------------
신호(Signals)
프로그램들에게 어떤 사건들이 발생했다는 것을 알리는 체계를 제공
예 : 사용자가 인터럽트 문자(리눅스의 Ctrl+C)를 입력했을 때, 타이머 만료
신호가 수행중인 프로그램에 전달될 때 다음 네가지 중 하나가 발생
1. 신호가 무시
2. 프로그램이 운영체제에 의해 강제저긍로 종료
3. 프로그램에 의해 지정된 신호처리 루틴이 수행
4. 신호가 블록 : 프로그램이 전달을 허용하는 조치를 취할 떄까지 어떤 효과를 내는 것을 막음
--- 신호 처리 프로그램 ---
// sigaction.c
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <stdlib.h>
void DieWithError(char *errorMessage);
void InterruptSignalHandler(int signalType); // 신호에 대한 처리를 해줄 함수
int main(int argc, char *argv[])
{
struct sigaction handler; //신호 처리를 위한 구조체 핸들러 선언
handler.sa_handler = InterruptSignalHandler; //신호 구조체 선언
if(sigfillset(&handler.sa_mask) <0) //신호를 어떻게 처리할 지 선언(마스크 = 블럭)
DieWithError("sigfillset() failed");
handler.sa_flags = 0;
if (sigaction(SIGINT, &handler, 0) <0)
DIeWithError("sigaction() failed");
for(;;)
pause();
exit(0);
}
void InterruptSignalHandler(int signalType)
{
printf("Interrupt Received. Exiting program.\n");
exit(1);
}
/* 위 함수와 교체 부분
void InterruptSignalHandler(int ignored)
{
printf("Interrupt Received.\n");
sleep(3);
}
*/
※ 시스템 상에서 인터럽트를 2번만 받기 떄문에 Ctrl+C를 3번 연속 눌러도 Interrupt Received 메시지는 2번만 출력됨.
'Web & Network' 카테고리의 다른 글
자바스크립트 자동 새로고침 (984) | 2015.09.29 |
---|---|
멀티태스킹(Multi tasking) (1366) | 2013.11.11 |
신호(Signals) (1329) | 2013.11.04 |
UDPEchoServer (1107) | 2013.10.30 |
tcp/ip 소켓 프로그래밍 함수 소개 (1097) | 2013.09.16 |
- Total
- Today
- Yesterday
- 해커스쿨
- FTZ
- 파이썬
- python
- CloudFlare
- 웹
- 스크립트
- exploit
- network
- 프로그래밍
- CODEGATE 2014
- DoH
- CK Exploit Kit
- TISTORY
- www
- 개발
- 악성코드
- Wargame
- writeup
- 웨일브라우저
- 사이버테러
- Sublime Text 2
- 분석
- 티스토리
- 프로그래밍 언어
- 문제풀이
- hackerschool
- DNSOverHTTPS
- 자바스크립트
- BOF
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |