컴퓨터/우분투2011. 2. 1. 15:39


네트워크 연결(IP, Port) 정보를 얻는 방법으로 보통은 netstat 를 많이 사용한다.

하지만 Linux 와 Windows 에서는 옵션이 달라서 많이 헷갈린다. 그래서 정리해본다.

1. Linux 에서 사용법

   1) 옵션
  • -n : 네트워크 정보(IP, Port) 정보를 숫자로 표시
  • -a : 모든 소켓 정보를 표시
  • -t, -u : 프로토콜 선택(-t: TCP, -u: UDP)
  • -l : 수신 대기(Listening) 소켓만 표시
  • -p : 소켓과 연결된 프로그램 정보 표시(PID, 프로그램 이름)
  • -c : 1초마다 정보를 계속 표시

   2) 사용예
$ netstat -n -a -t

2. Windows 에서 사용법

   1) 옵션
  • -n : 네트워크 정보(IP, Port) 정보를 숫자로 표시
  • -a : 모든 소켓 정보를 표시
  • -p {tcp|udp} : 프로토콜 선택
  • -b : 소켓과 연결된 프로그램 이름 표시
  • -o : 소켓과 연결된 프로세스 ID(PID) 표시
  • {숫자} : 지정 초간격으로 계속 표시

   2) 사용예
> netstat -n -a -p tcp

Posted by jungtae17
컴퓨터/프로그래밍2011. 1. 27. 18:58
UNICODE 와 ANSI 문자열 사이에서 변환이 쉽지 않다.

C/C++ 에서는 간단한 함수를 제공하고 있어서 소개한다.
// STEP 0: 로케일 설정 (시스템의 기본 언어로 설정)
setlocale( LC_ALL, "" );

// STEP 1: 문자 변환
//   	STEP 1-1 ANSI ==> UNICODE
mbtowc( UNICODE 문자, ANSI 문자 );
//   	STEP 1-2: UNICODE ==> ANSI
wctomb( ANSI 문자, UNICODE 문자 );

// STEP 2: 문자열 변환
//	STEP 2-1: ANSI ==> UNICODE
mbstowcs( UNICODE 문자열, ANSI 문자열, UNICODE 문자열 최대길이 );
// 	STEP 2-2: UNICODE ==> ANSI
wcstombs( ANSI 문자열, UNICODE 문자열, ANSI 문자열 최대길이 );

UNICODE 사용 시 유용한 매크로

  • _countof() 매크로 : 문자 배열의 크기(문자 개수)
  • sizeof 연산자 : 문자배열의 Byte 수

Posted by jungtae17
컴퓨터/우분투2011. 1. 22. 15:49


우분투 64bit 에서는 Firefox 가 64bit 로 설치 되어 있다. 그리고 내가 많이 사용하는 Chrome 도 64bit 를 사용 중이다.

이들 웹 브라우저를 사용하면서 다른 문제는 없지만 Flash 때문에 불편한 것이 많다.

그렇다고 플러그인을 찾는 것도 쉽지않고 설치도 어렵다.

하지만 알고 보면 손쉽게 설치 가능하다. 그래서 간단히 정리해 본다.

1. Adobe Labs 에서 Flash Player 플러그인 64bit 를 받는다.

2. ~/.mozilla/plugins 디렉토리를 만든다.
~$ mkdir -p .mozilla/plugins

3. ~/.mozilla/plugins 디렉토리에 위에서 받은 플러그인 압축 파일(예: flashplayerX_X_X_64bit_linux_XXXXXX.tar.gz)을 푼다.
~$ cd .mozilla/plugins
~/.mozilla/plugins$ tar xzf flashplayerX_X_X_64bit_linux_XXXXXX.tar.gz

4. 모든 Firefox, Chrome 을 닫고 다시 실행한다.

한번만 설치하면 Firefox, Chrome 모두 적용되기 때문에 편리하다.
Posted by jungtae17
컴퓨터/Java2011. 1. 22. 14:34
Java 를 처음 공부하는 입장에서 여러가지 에디션 중에 무엇을 선택해야할지 고민된다.

그래서 비교 자료를 찾던 중 Java API Map 이라는 것을 접하게 되었는데 그림 하나로 간단히 정리되어 있어서 소개한다.



'컴퓨터 > Java' 카테고리의 다른 글

RIA 개발 도구 - Google Web Toolkit  (0) 2011.04.09
Java 개발 환경 구성(Eclipse, Plug-in 설치)  (0) 2011.04.07
Java Profiling  (0) 2011.01.17
Java 에서 Logging 처리  (0) 2011.01.17
Java 에서 *.ini 파일 읽기/쓰기  (1) 2011.01.17
Posted by jungtae17
컴퓨터/프로그래밍2011. 1. 21. 20:16
라이브러리나 API 호출 없이 간단한 방법으로 변환할 수 있다.
// std::string ==> std::wstring 변환
std::string  _str( "string" );
std::wstring _wstr;

_wstr.assign( _str.begin(), _str.end() );


// std::wstring ==> std::string 변환
std::wstring _wstr( L"string" );
std::string  _str;

_str.assign( _wstr.begin(), _wstr.end() );
Posted by jungtae17
컴퓨터/프로그래밍2011. 1. 20. 11:16
윈도우 프로그래밍 시 주로 MFC 를 사용하는데 파일 선택 대화상자(CFileDialog)는 있지만 폴더 선택 대화상자는 없다.

그래서 Win32 API로 간단히 폴더 선택 대화상자를 만드는 방법이 있어서 정리해 본다.


void OnBnClickedSelectFile()
{
	BROWSEINFO bi;

	TCHAR szTemp[ MAX_PATH ] = { 0, };

	TCHAR * pszPath = _T( "D:\\" );

	::ZeroMemory( &bi, sizeof( BROWSEINFO ) );

	bi.hwndOwner	= hWnd;
	bi.lpszTitle	= _T( "파일이 저장될 폴더를 선택해 주세요." );
	bi.ulFlags		= BIF_NEWDIALOGSTYLE | BIF_EDITBOX | BIF_RETURNONLYFSDIRS
						| BIF_STATUSTEXT | BIF_VALIDATE;
	bi.lpfn			= BrowseCallbackProc;
	bi.lParam		= (LPARAM)pszPath;

	LPITEMIDLIST pItemIdList = ::SHBrowseForFolder( &bi );

	if( ::SHGetPathFromIDList( pItemIdList, szTemp ) )
	{
		MessageBox( szTemp );
	}
}

static int CALLBACK BrowseCallbackProc( HWND hWnd, UINT uMsg, LPARAM lParam,
										LPARAM lpData )
{
	switch( uMsg )
	{
	case BFFM_INITIALIZED:		// 폴더 선택 대화상자를 초기화 할 때, 초기 경로 설정
		{
			::SendMessage( hWnd, BFFM_SETSELECTION, TRUE, (LPARAM)lpData );
		}
		break;

	// BROWSEINFO 구조체의 ulFlags 값에 BIF_STATUSTEXT 가 설정된 경우 호출
	// 단, BIF_NEWDIALOGSTYLE 가 설정되어 있을 경우 호출되지 않음
	case BFFM_SELCHANGED:		// 사용자가 폴더를 선택할 경우 대화상자에 선택된 경로 표시
		{
			TCHAR szPath[ MAX_PATH ] = { 0, };

			::SHGetPathFromIDList( (LPCITEMIDLIST)lParam, szPath );
			::SendMessage( hWnd, BFFM_SETSTATUSTEXT, 0, (LPARAM)szPath );
		}
		break;

	// BROWSEINFO 구조체의 ulFlags 값에 BIF_VALIDATE 가 설정된 경우 호출
	// BIF_EDITBOX 와 같이 설정된 경우만 호출됨
	case BFFM_VALIDATEFAILED:	// 에디터 콘트롤에서 폴더 이름을 잘못 입력한 경우 호출
		{
			::MessageBox( hWnd, _T( "해당 폴더를 찾을 수 없습니다." ), _T( "오류" ),
				MB_ICONERROR | MB_OK );
		}
		break;
	}

	return 0;
}
Posted by jungtae17
컴퓨터/Java2011. 1. 17. 21:01

'컴퓨터 > Java' 카테고리의 다른 글

RIA 개발 도구 - Google Web Toolkit  (0) 2011.04.09
Java 개발 환경 구성(Eclipse, Plug-in 설치)  (0) 2011.04.07
Java SE / EE / ME 비교  (0) 2011.01.22
Java 에서 Logging 처리  (0) 2011.01.17
Java 에서 *.ini 파일 읽기/쓰기  (1) 2011.01.17
Posted by jungtae17
컴퓨터/Java2011. 1. 17. 20:57

Java logging framework http://en.wikipedia.org/wiki/Java_logging_framework

로깅(Logging) 처리 http://www.java-school.net/java/Logging.php


java.util.logging 패키지 사용

java logging 시스템의 기본 설정 파일
 : %JAVA_HOME%\jre\lib\logging.properties 파일

'컴퓨터 > Java' 카테고리의 다른 글

RIA 개발 도구 - Google Web Toolkit  (0) 2011.04.09
Java 개발 환경 구성(Eclipse, Plug-in 설치)  (0) 2011.04.07
Java SE / EE / ME 비교  (0) 2011.01.22
Java Profiling  (0) 2011.01.17
Java 에서 *.ini 파일 읽기/쓰기  (1) 2011.01.17
Posted by jungtae17