본문 바로가기

Programming

(86)
네트워크 프로그래밍 시작(Start to Network Programing) - Server /*****************************************/ /*****Hello World (For Network Server)*****/ /*********Written by. Necky My.J***********/ /*****************************************/ #include #include #include #include void ErrorHandling(char *message); int main() { WSADATA wsaData; SOCKET hServSock; SOCKET hClntSock; SOCKADDR_IN servAddr; SOCKADDR_IN clntAddr; int szClntAddr; char message[] = "hello..
파일 디스크립터란?(File Descriptor) 파일 디스크립터란?(File Descriptor) 시스템으로부터 할당받은 파일이나 소켓을 대표하는 정수를 의미 또한 표준 입력과, 표준출력도 파일 디스크립터로 표현 가능, 이들은 프로그램이 시작되자마자 기본적으로 열리고, 종료 시에 자동적으로 닫히게 된다. (디스크립터란 용어 대신에 핸들이라는 표현도 함께 사용된다. 그러나 핸들은 주로 윈도우즈 기반에서 사용되는 언어이다)
넷필터(netfilter)란 무엇인가? 넷필터(netfilter)란 무엇인가? 넷필터는 표준 Berkeley socket interface의 외부에 존재하는 packet mangling(패킷을 토막내는 일)에 대한 프레임웍으로, 크게 네 부분으로 구성되어 있다. 먼저 각각의 프로토콜은 "hooks"라는 것을 정의하며, 이는 패킷 프로토콜 스택의 packet's traversal에 있는 잘 정의된 포인터를 의미한다. 이러한 포인터에서, 각각의 프로토콜은 패킷과 훅넘버(hook number)를 이용하여 넷필터 프레임웍을 호출하게 된다. 두 번째로, 커널의 일부분은 각 프로토콜에 대하여 다른 hook을 감시하도록 등록할 수 있다. 따라서 패킷이 넷필터 프레임웍을 통과할 때, 누가 그 프로토콜과 훅을 등록했는지 확인하게 된다. 이러한 것이 등록되어 ..
GetWindowText 사용법 어떤 윈도우(Form)의 텍스트(캡션)를 가져오고자 할때 우리는 GetWindowText 라는 API를 주로 사용합니다. GetWindowText 원형 int GetWindowText( HWND hWnd, LPTSTR lpString, int nMaxCount); 원형 int CWnd::GetWindowText( LPTSTR lpszStringBuf, int nMaxCount ) const; void CWnd::GetWindowText( CString& rString ) const; 인수 ▶hWnd:윈도우 또는 컨트롤의 핸들 ▶lpString:캡션을 리턴받을 버퍼 ▶nMaxCount:버퍼의 크기 리턴 윈도우 핸들이 무효한 경우 0을 리턴한다. 성공한 경우 조사된 캡션의 길이를 리턴하되 널 종료 문자는 제..
서버와 클라이언트 연관 부분 ㅁ 서버 소켓 생성 - 포트번호 - 연결요청 - 접속클라이언트소켓생성 - 통신반복 - 클라이언트 종료 - 소켓 종료 ㅁ 클라이언트 소켓 생성 - 서버 연결 - 통신반복 - 종료
isdigit() 문자가 숫자 문자인지를 판별 인수로 받은 문자가 숫자 문자인( '0'~'9')지를 판별합니다. 헤더 ctype.h 형태 int isdigit( int c) 인수 int c 판별할 문자 반환 0 != c가 숫자 문자, '0'~'9' 0 = c는 숫자 문자가 아님 예제 #include #include int main( void) { int ch1 = '1'; int ch2 = 'a'; int ch3 = 256; // 아스키값 이상 if ( isdigit( ch1)) printf( "%c(x%03x)는 숫자 문자입니다.\n", ch1, ch1); else printf( "%c(x%03x)는 숫자 문자가 아닙니다.\n", ch1, ch1); if ( isdigit( ch2)) printf( "%c(x%03x)는 숫자 문자입니다.\n", c..
strtol() 정수 문자열을 진수 선택하여 정수로 변환 숫자 문자열을 long형 숫자로 변환합니다. atoi()나 atol()과는 달리 (1) 변환하려는 진수를 선택할 수 있으며, (2) 숫자 문자가 아닌 문자를 만나면 그 포인터 위치를 구해 줍니다. 예로, "1000secrys" 을 호출하게 되면, char *str; char *ptr; long value; str = "1000secrys"; value = strtol( str, &ptr, 10); value에는 2007이 들어 가고 ptr에는 숫자로 변화하지 못하는 문자열의 시작 위치를 구해 줍니다. 만약 NULL을 넘겨주면 시작 위치를 구하지 않습니다. 헤더 stdlib.h 형태 long strtol(const char *restrict str, char **endptr, int base); 인수 ch..
warning C4996: 'fopen'이(가) deprecated로 선언되었습니다. warning C4996: 'fopen'이(가) deprecated로 선언되었습니다. 기존 C Library 계열 보안문제를 해결하기 위해 MS사의 Secure 버전을 사용하지 않았다고 말해 주는 것이다. 해결 방법은 fopen 함수를 fopen_s로 사용하거나 (다른 deprecated로 선언되었다는 것들도 함수이름_s로 바꾸어서 사용, 예) strcpy -> strcpy_s) 맨위에 #define _CRT_SECURE_NO_DEPRECATE 로 한줄 추가 해주면 해결할 수 있다.

반응형