본문 바로가기

IT/c, c++

[c] 소켓 생성 기본 int main(){.....// 소켓 생성SOCKET hSocket; hSocket = socket(PF_INET, SOCK_STREAM, 0); if(hSocket == INVALID_SOCKET) ErrorHandling("socket() error"); // 소켓 초기화SOCKADDR_IN servAddr; memset(&servAddr, 0, sizeof(servAddr)); servAddr.sin_family = AF_INET; servAddr.sin_addr.s_addr = inet_addr(ip); // Client servAddr.sin_addr.s_addr = inet_addr(INADDR_ANY); // Server servAddr.sin_port = htons(atoi(port));.. 더보기
[c] ASKII 코드 출력 #include #include int main() { char ch; while(1) { printf("문자 "); ch = getch(); ch = getch(); printf("%c 아스키값 %d\n",ch,ch); } } 더보기
Template 코드의 선언과 정의는 하나의 파일에 넣자! 일반적인 함수는 '선언(declaration)'과 '정의(definition)'를 파일로 분리하여 컴파일할 수 있다. 이렇게 하면 좋은 점은 컴파일 시간을 줄일 수 있다는 것이다. 하지만 Template를 사용할 경우에는 그렇지않다. Template을 사용하여 구현한 코드는 '선언'과 '정의'를 같은 파일에 넣어야 한다. 왜냐하면 실제로 Template을 사용하는 시점에서 코드가 인스턴스화되기 때문이다. 즉, 사용된 시점에서 컴파일러가 '선언'뿐만이 아니라 '정의'까지 알아야하기 때문이다. 그렇다면, 정말로 파일로 분리하여 구현하는 방법은 없는 것일까? 아니다. 실제로는 아주 간단하게 해결할 수도 있다. Template를 사용하는 파일에서 선언이 있는 파일(.h 파일)과 정의가 있는 파일(.cpp 파일).. 더보기
[c] IP Setting - IP address 구조체 struct sockaddr_in { unsigned short sin_family; /* address family (always AF_INET) */ unsigned short sin_port; /* port num in network byte order */ struct in_addr sin_addr; /* IP addr in network byte order */ unsigned char sin_zero[8]; /* pad to sizeof(struct sockaddr) */ }; SOCKADDR_IN servAddr { memset(&servAddr, 0, sizeof(servAddr)); servAddr.sin_family = AF_INET; servAddr.si.. 더보기
[c] File 입출력 첫번째는 파일을 여는 방법입니다.파일을 열기 위해서는FILE *fopen(char *filename, char *mode);위와같이 fopen()함수를 사용해서 파일을 열게 됩니다.두번째 인자인 mode가 어떤의미인지 궁금하실텐데요.지금부터 텍스트 파일 모드의 종류를 표를 통해 설명해 드리겠습니다. 다음은 이진 파일 모드의 종류 입니다. 파일이 정상적으로 열리면 fopen()함수는 파일 포인터를 반환합니다.만약에 함수가 열기를 실패하면 널 포인터를 반환한다는 점 반드시 기억해 두시기 바랍니다.다음은 파일을 읽고 쓰는 방법에 대해 알아보겠습니다.파일을 읽고 쓸때는 파일 입출력 함수를 사용합니다. 마지막으로 파일을 닫는 방법입니다.함수는 fclose()를 사용합니다.int fclose(FILE *fp);형식.. 더보기
[c,c++] malloc 와 new 의 차이 우리는 C에서 메모리를 할당할 경우 malloc 함수를 통해 동적 메모리 할당을 한다.그리고 c++에서는 메모리 할당하는 경우로 new를 사용하여 편리하게 메모리를 할당 할 수 있다. malloc의 함수 사용 -> void *malloc(size_f size);위의 형태가 원형인 함수로서 size에 주어진 만큼의 byte수를 갖는 메모리 공간을 동적으로 할당하여 메모리 주소를 포인터 방식으로 리턴 해주는 함수이다. 사용법은int n= 갯수;int* pA = (int*) malloc(sizeof(int)*n);와 같이 쓰인다.sizeof(int)가 입력됨으로써 4byte의 크기(자료형의 크기)를 지시해주고malloc은 void*형으로 리턴값이 나오기 때문에 int*형으로 형변환을 해줌으로써 int*형 변수.. 더보기