posted by nsakura 2013. 12. 13. 21:09

기본에 충실하자! 라는 생각을 늘 하고 다니지만..

 

오늘 처럼 기본에 충실하지 않아서 생긴 문제점을 해결하면 정말 나 자신에게 열이 받는다..

 

소켓 프로그램을 하나 만들어야하는 상황이 되어서.. 프로그램을 만들기 시작했다.

 

일단 기본적으로 데이터 송수신 까지 localhost로 확인을 하였다.. 여기 까지는 되니 당연히 외부접속으로도 문제가 없을줄 알았다..

 

그런데.. dmz를 걸어도 포트포워딩을 걸어도.. 아무리해도 외부에서는 서버에 접속할수가 없었다.

 

포트도 0~1023는 사용하지 않았고 4444번을 사용 했다. 뿐만 아니라 내부 네트워크에서도 접속이 가능했는데..

 

외부에서 오는 접속만 못하는 것이었다.. 방화벽 설정도 했고.. 설정면에서는 안될게 없었는데..

 

고민을 하다가 포트번호를 보다가.. 본것이 있으니..

 

바로... 이 표..

 

 

 0~1023

 well-known Port Numbers

 1024~49151

 Registered Port Numbers

 49152~65535

 Dynamic Port Number

 

 

바로 4444번은 등록된 포트 넘버였다..  혹시나.. 해서 50000번 포트로 열어보니.. 외부 접속도 가능 하였다..

 

보통 생각하는건 0~1023 포트만 생각을 많이한다. 그러나.. 왠만해서는 1024~49151 포트 역시 피하는것이 좋다는것을 배웠다.

 

포트에 대한 기본적인 정보만 있었다면.. 이러한 삽질을 하지 않았을텐데..

 

 

 

'Computer > Win API' 카테고리의 다른 글

WinApi 컨트롤  (0) 2010.07.23
WinApi 그래픽 [TEXT COLOR]  (0) 2010.07.23
WinApi 그래픽[폰트]  (0) 2010.07.22
WinApi 그래픽 [비트맵 bitmap]  (0) 2010.07.22
WinApi RopMode2 [확장]  (0) 2010.07.22
posted by nsakura 2013. 11. 3. 12:21

다른 곳은 잘모르겠으나.. 아직까지 6.0을 쓰는곳이 은근히 많다.

 

그이유는 6.0이 필요한 기능만 있고 그외에는 빠져있기 때문이다.

 

하지만 많은 함수들이 만들어지면서 6.0사용이 힘들어지기 시작했다.

 

물론 본인도 6.0 사용이 힘들어지면서 2008로 갈아탔다.

 

그러나 6.0의 편리함은 잊어지지 않는다..

 

이번 포스트는 6.0에서 2008로 변환되면서 나타나는 리소스 디자인 문제이다.

 

2008로 변환되면서 소스의 안전장치를 위해 STRCPY등등 함수에 원본 데이터의 길이 또는 사이즈를 받게 되는데 이건 큰 문제가 되지 않다.

 

다만 리소스 디자인 문제는 문제는 아니다 다만... 6.0 상위버젼의 이쁘장한 버튼을 못쓰는게 문제인것이다.

 

못쓰는게 아니라 정확히는.. 실행해도 구닥다리 UI 뜬다는건데 해결 방법은 간단하다.

 

STDAFX.H 파일 하단에

 

//#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
//#endif

다음과 같이 추가해주자. 그럼 6.0이후의 상위 디자인 컨트롤을 쓸수 있다.

 

 

'Computer > C++' 카테고리의 다른 글

[vc++] 자동정렬  (0) 2010.08.27
이거이거 하다보니 너무 똑같더라.  (0) 2010.07.13
단항 스코프 식별 연산자  (0) 2010.07.13
예제1 입출력을 했으면 이게 나와야죵?! 계산기!  (0) 2010.07.13
예제  (0) 2010.07.13