Liea
'프로그래밍' 태그의 글 목록 (4 Page)

프로그래밍

① 공부/C#

C#의 기본 특징

자료형 ㅇ 값형 : 문자, 부울, 숫자, 열거, 구조체 형 ㅇ 참조형 : 클래스, 인터페이스, 배열, 델리게이트 연산자 ㅇ 표준 C언어와 유사 : 산술, 관계, 논리 증가 및 감소, 비트, 조건, 배정 연산자 등 ㅇ 형 검사 연산자 - is 연산자 = 호환 가능 여부 검사 - as 연산자 = 지정한 형으로 변환 배열의 특징 배열 : 같은 형을 갖는 여러 개의 값을 저장할 수 있는 자료 구조 //객체 취급 및 배열혈 제공 배열 변수 선언 - int[] vector; //명시적으로 나타내야함 - short[,] matric; //콤마를 넣어 차원을 명시적으로 선언 - long[][] arrayOfArray; - object[] myArray1, myArray2 //콤마로 구분하여 두 개이상의 배열을 나열하여..

① 공부/C#

C#언어의 개요

자료추상화 : 클래스를 통해 자료 추상화 가능 델리게이트와 이벤트 : 이벤트를 형식적으로 정의하고 사용할 수 있는 방법론 제공 멀티스레드 : 동시처리를 위해 지원 예외처리 : 실행시간에 일어나는 에러인 예외를 언어 수준에서 체계적으로 다룰 수 있는 방법 제공 연산자 중복 : 코드의 재활용을 가능하게 하는 경제적인 코딩 기법 제너릭 : 하나의 함수로 여러가지 자료형을 처리할 수 있는 기능 제공 == 코드의 경제성은 객체지향 언어의 중요한 특성 중 하나 콘솔 / 윈폼 어플리케이션으로 나뉜다. 콘솔 : 문자기반 명령어 프롬프트 환경에서 실행, 키보드를 통해 데이터를 입력하고, 실행 결과를 화면에 문자로 출력 윈폼 : GUI를 통해 입출력 수행, 이벤트 처리 방식을 통해 실행 using System; using..

③ 공부/TCP, IP Socket Programming

main_에코서버(이벤트)

#include "MySocketError.h" #include "MySystemError.h" #define MAXCLIENT 100 //현재 접속한 클라이언트의 소켓 정보 SOCKET clientSockets[MAXCLIENT]; int clientCount; //클라이언트들이 접속하면 하나씩 쓰레드가 만들어진다. unsigned int _stdcall ThreadFunc(void* lpParameter); //q만을 감시해서 모든 클라이언트 접속을 끊어버리겠다. unsigned int _stdcall ThreadFuncExit(void* lpParameter); //CRITICAL_SECTION cs; //HANDLE hMutex; //HANDLE hSemaphore; HANDLE hEvent; v..

③ 공부/TCP, IP Socket Programming

main_에코서버(세마포어)

#include "MySocketError.h" #include "MySystemError.h" #define MAXCLIENT 100 //현재 접속한 클라이언트의 소켓 정보 SOCKET clientSockets[MAXCLIENT]; int clientCount; //클라이언트들이 접속하면 하나씩 쓰레드가 만들어진다. unsigned int _stdcall ThreadFunc(void* lpParameter); //q만을 감시해서 모든 클라이언트 접속을 끊어버리겠다. unsigned int _stdcall ThreadFuncExit(void* lpParameter); //CRITICAL_SECTION cs; //HANDLE hMutex; HANDLE hSemaphore; void TotalClients(..

③ 공부/TCP, IP Socket Programming

main_에코서버(뮤텍스)

#include "MySocketError.h" #include "MySystemError.h" #define MAXCLIENT 100 //현재 접속한 클라이언트의 소켓 정보 SOCKET clientSockets[MAXCLIENT]; int clientCount; //클라이언트들이 접속하면 하나씩 쓰레드가 만들어진다. unsigned int _stdcall ThreadFunc(void* lpParameter); //q만을 감시해서 모든 클라이언트 접속을 끊어버리겠다. unsigned int _stdcall ThreadFuncExit(void* lpParameter); //CRITICAL_SECTION cs; HANDLE hMutex; void TotalClients(void); int _tmain(voi..

③ 공부/TCP, IP Socket Programming

main_에코서버(크리티컬섹션으로)

#include "MySocketError.h" #include "MySystemError.h" #define MAXCLIENT 100 //현재 접속한 클라이언트의 소켓 정보 SOCKET clientSockets[MAXCLIENT]; int clientCount; //클라이언트들이 접속하면 하나씩 쓰레드가 만들어진다. unsigned int _stdcall ThreadFunc(void* lpParameter); //q만을 감시해서 모든 클라이언트 접속을 끊어버리겠다. unsigned int _stdcall ThreadFuncExit(void* lpParameter); CRITICAL_SECTION cs; void TotalClients(void); int _tmain(void) { _tsetlocale(..

③ 공부/TCP, IP Socket Programming

시스템 프로그래밍 : 파일 그리고 쓰레드를 제어하는 동기화모듈들(뮤텍스 세마포어 이벤트 크리티컬섹션)

2._tmain_STDIO의 파일함수로 파일을 카피하자(TCHAR).cpp #include "MySystemError.h" #define MAXSTRING 100 enum{READ,WRITE }; //#define READ 0 #define WRITE 1 int _tmain(void) { _tsetlocale(LC_ALL, _T("korean")); //1.copy할 파일의 이름을 저장한다. TCHAR filename[2][MAXSTRING] = { 0 }; if (!SelectOpenFile(filename[READ])) return -1; if (!SelectSaveFile(filename[WRITE])) return -1; for (int i = 0; i < 2; i++) _tprintf(_T("[..

③ 공부/TCP, IP Socket Programming

시스템 프로그래밍 : 쓰레드를 제대로 써보자

main_다수의 쓰레드를 만들어보자(안정화된 함수를 사용하기도 하고).cpp #include "MySystemError.h" #define MAX 100000 #define MAXTHREAD 100 int total = 0;//전역변수 DWORD WINAPI ThreadFunc(LPVOID IpParameter); HANDLE hMutex; int _tmain(void) { hMutex = CreateMutex(NULL, FALSE, NULL); if (!hMutex) SystemErrorMsg(_T("CreateMutex")); else SystemOKMsg(_T("CreateMutex")); BOOL result = FALSE; _tsetlocale(LC_ALL, _T("korean")); HANDL..