C++ 6

[C/Java] C와 java간 소켓통신에서 주의할 점!!!

출처 : http://www.javaservice.com/~java/bbs/write.cgi?m=&b=qna2&c=w_f&n=1221737969&p=1&s=t 안녕하세요 java와 c간의 TCPIP통신을 하고 있는데요 커넥트가 안되는 문제가 발생했었는데 그건 제 실수로 해결이 되었고 이번에 서로 통신을 해보니까 특이한 사항이 생겨서 질문을 드립니다. 구조는 에코 서버입니다. C가 서버이구요 자바가 클라이언트 입니다. 처음 서버가 열리구 클라이언트가 접속을 하고 자바에서 메세지를 입력받아서 서버에 전송을 하게 되어 있습니다. 같은 인디언체계에서 전송을 하기에 인디언 문제도 안생기구요 그런데 서버측에서는 accept 때와 매번 메세지가 전송이 될때 마다 특이한 문자가 들어옵니다. 혹시나 해서 아래처럼 반복문..

이전포스트 2011.06.07

[C++] Xcode에서 UnitTest++로 유닛 테스트하기

출처 : http://cafe.naver.com/mcbugi/11624 맥부기에서 기룡(zelinde) 님께서 작성하신 팁입니다. @ 주석 혹시 프로그래머 분들중에 UnitTest++을 모르시는 분이 계시다면 꼭 한번 사용해보시길~ 저도 "실용주의 프로그래머"라는 책에서 읽고 난 뒤에 Win32/Linux 프로젝트에서는 항상 사용했었습니다. 어떤 기능을 테스트할 때도 유용하지만 일종의 '사용법'도 되더군요. Windows, Linux 뿐만아니라 XCode에서 아이폰용 어플을 만들때도 사용했으면 했는데 기룡님께서 좋은 팁을 써주셔서 퍼왔습니다~ 모두들 즐플 하시길 바래요~ ^^* @ 주석2 기룡님께서 http://acornheroes.com/2009/06/unit-testing-and-linking-sta..

이전포스트 2010.12.17

[C++] CreateThread / _beginthread / _beginthreadex 의 설명

원문 : http://mgun.tistory.com/653?srchid=BR1http%3A%2F%2Fmgun.tistory.com%2F653 스레드를 생성하는 함수. 스레드는 커널에 의해 생성되는 리소스이므로 커널 오브젝트가 생성될 것이고 함수 호출이 끝나면 커널 오브젝트를 의미하는 핸들이 리턴 될 것이다. 1. Win32 API의 CreateThread 대신 C Run Time Library의 _beginthreadex를 써야하는 경우 1.부동 소수형 변수나 함수를 사용할 경우 2.C의 malloc과 free나 C++ 의 new와 delete 를 사용할경우 3.stdio.h 나 io.h에서 어떤 함수를 호출한다면 4.strtok() 나 rand() 와 같이 정적 버퍼를 사용 하는 어떤 런타임 함수를 호..

이전포스트 2010.11.02

[C++] 디버깅시 메모리 값의 의미.

VS로 디버깅시 디버거로 특정 메모리 주소의 값을 확인할 때가 있습니다. 이때 VS에서 사용하는 매직 넘버의 의미를 알면 디버깅 시에 메모리를 확인 할 때 도움이 됩니다. 다음은 Visual C++ debugging memory state 입니다. Visual C++ debugging memory state 0xCCCCCCCC // 초기화 하지 않은 스택 메모리. 0xCDCDCDCD // 메모리 할당 후 초기화되지 않은 힙 메모리. 0xDDDDDDDD or 0xFEEEFEEE // 힙에서 Free된 메모리이다. 그것을 사용할 때. 0xFDFDFDFD // 할당한 것을 벗어난 heap의 공간을 사용할 시에 할당된 메모리의 전후 가드용 // 바이트에 채워지는 값 ABABABAB // HeapAlloc으로 메..

이전포스트 2010.03.12

[Tip] gdb의 간단한 사용법.

gdb는 Linux에서 사용되는 디버깅 툴 입니다. linux에서 이 툴을 이용해서 디버깅을 좀 더 수월하게 진행할 수 있습니다. 다음은 간단한 사용법입니다. 01. 우선 컴파일 시에 디버깅 옵션을 주어 컴파일 합니다. # g++ -g -o -g : 디버깅 옵션 (최적화 옵션인 -O는 주지 않는다) -o : 출력할 프로그램의 이름. 의 이름대로 프로그램이 만들어진다. 에 *.c 혹은 *.cpp와 같이 소스코드 파일명이 들어간다. 02. gdb를 사용합니다. gdb를 사용하는 방법은 크게 3가지로 있습니다. 1) # gdb ./ 2) # gdb ./ ./ 3) # gdb ./ ./ 가장 일반적으로 사용되는 것은 1번과 2번 입니다. 1,2번을 간단히 설명하자면. 1번 사용법은 gdb를 사용하여 프로그램을 ..

이전포스트 2010.02.23

[Tip] Borland C++에서 Window를 포함하는 DLL을 만들어VC++에서 사용하기. (그 반대의 경우 포함)

내가 주로 클라이언트 프로그램을 만들때 사용하는 방법은 2가지가 있다. 방법1. Borland C++로 팝업창이나 설정창등의 다이얼로그 기반(혹은 폼이라고도 한다)의 UI을 DLL로 만든다. Visual C++로 프로젝트를 만들때 설정창등을 띄울때 위의 DLL을 로드하여 윈도우를 띄워 정보를 입력 받는다. (이때, 메인 프로젝트는 Visual C++로 작성한 프로젝트가 된다.) 이 방법은 화려한 UI가 필요없는 관리 프로그램같은 경우 즐겨 사용하는 방법이다. 방법2. 네트워크나 파일처리등의 기능을 Visual C++을 이용하여 DLL로 만든다. Borland C++로 프로젝트를 만들고 UI를 구현할때 해당 기능은 위의 DLL을 로드하여 처리한다. (이때, 메인 프로젝트는 Borland C++로 작성한 프..

이전포스트 2009.02.24
반응형