본문 바로가기

Programming/C++5

[MFC,CSocket] 클라이언트에서 포트 지정 후 재연결 시 10048 Error 발생 해결방법 1. 문제 상황 클라이언트에서 포트를 지정하여 소켓을 생성 후 연결 한다음, 연결을 끊고 다시 연결했을 때 소켓이 Close되지 않고 TIME_WAIT 상태로 남아 있어서 10048(WSAEADDRINUSE) 에러가 발생한다. 길면 2분 가까이 TIME_WAIT이 지속되므로 난감해진다. 그럴 때 SO_LINGER 옵션을 줘서 TIME_WAIT 상태로 남지 않고 바로 포트를 반환하도록 할 수 있다. 2. 소스 //먼저 소켓을 포트를 지정하여 Create 한다. m_ConnectSocket.Create(atoi(m_strClientPort)); // 링거 구조체를 생성하고 onoff = 1을 하여 링거를 키고, linger의 타이머를 0초로 설정한다. struct linger{ int l_onoff; int.. 2022. 8. 10.
[c++] 릴리즈 빌드시 exe, pdb 파일 이름 변경 방법 기존 프로젝트를 재활용할 때 프로그램의 이름을 변경해야하는 상황이 발생한다. 이럴 때 exe와 pdb 파일들의 이름만 변경하는 방법을 설명한다. 1. exe 파일 이름 변경 방법 ※ 먼저 구성이 Release로 선택되어있는지 확인한다. 1-1 프로젝트 속성 - 구성 속성 - 디버깅 - 명령 칸에서 원하는 이름으로 변경(*.exe) 1-2 프로젝트 속성 - 구성 속성 - 링커 - 출력 파일 칸에서 원하는 이름으로 변경(*.exe) 2. pdb 파일 이름 변경 방법 2-1. 프로젝트 속성 - 구성 속성 - 링커 - 디버깅 - 프로그램 데이터베이스 파일 생성칸에서 원하는 이름으로 변경(*.pdb) 위 작업 사항을 저장후 다시 빌드하면 바뀐 이름으로 파일들이 생성된다. 2021. 11. 3.
Visual Studio에서 검색이 안될 때 Visual Studio에서 찾을 단어가 분명히 존재함에도 불구하고 검색이 안되는 경우가 있다. 그럴 경우 2가지의 해결 방법이 존재한다. 1. Ctrl + Break 키 눌러보기 2. 1번 방법으로 안될 때 해당 링크 참조 visual studio - Find Results not displaying Results - Stack Overflow Find Results not displaying Results Today my Find Results feature of Visual Studio 2012 stopped working. The Find Results windows displays summary information, but not the actual lines matched. This is a.. 2021. 4. 30.
[MFC] 명령줄 인자, Argument 받아서 프로그램 실행하기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 BOOL CTestDlg::OnInitDialog() { CDialog::OnInitDialog(); m_bExecuteByCmd = 0; CString strArgs; CWinApp *App = AfxGetApp(); strArgs = App->m_lpCmdLine; strArgs.MakeLower(); strArgs.TrimLeft();strArgs.TrimRight(); if(strArgs == "-viewer"){ m_bExecuteByCmd = 1; m_nViewer_Mode = 1; } } Colored by Color Scripter cs 위 코드는 Argument를 받아서 프로그램을 실행할 수 있게 하는 아주 간단한 코드 예제.. 2021. 3. 22.