https://balabala.tistory.com/45?category=947457 

 

[MFC] 채팅 프로그램 - 클라이언트 (2/3)

- 설명 - 프로젝트 명 : ChatClient(대화 상자) ① CSocket 클래스 이용 : 동기식(블로킹)으로 동작 ② 서버 클라이언트 1:1 통신 ③ 해당 글은 클라이언트 채팅 프로그램 만드는 법 설명 1. MFC 애플리케이

balabala.tistory.com


[따라하다가 안되던 부분들]

2. 다이얼로그 디자인 및 ID

형식을 CString 으로 하니 에러가 나서 CEdit, CStatic으로 변경했다. 

Control을 다루는 부분도 형식에 따라서 변경했다.

그림3. 멤버변수 설정

 

7. [접속] 및 [전송] 버튼 클릭 메시지 함수 작업

위 작업대로 형식에 맞게 메세지 함수 소스 코드 수정

void CChatClientDlg::OnBnClickedButtonConnect()
{
	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
	CString strIP;

	UpdateData(TRUE);
	m_socCom.Create();

	m_strIP.GetWindowText(strIP);

	// IP 주소와 포트 번호를 지정
	m_socCom.Connect(strIP, 5000);
	m_socCom.Init(this->m_hWnd);

}

void CChatClientDlg::OnBnClickedButtonSend()
{
	// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
	UpdateData(TRUE);
	char pTmp[256];
	CString strTmp, strText;
	CStringA strTextA;

	m_strSend.GetWindowText(strText);

	strTextA = CStringA(strText);

	// pTmp에 전송할 데이터 입력
	memset(pTmp, '\0', 256);
	memcpy(pTmp, strTextA.GetBuffer(), strTextA.GetLength());
	m_strSend.Clear();

	// 전송
	m_socCom.Send(pTmp, 256);

	// 전송한 데이터도 리스트박스에 보여준다.
	strTmp = pTmp;
	int i = m_list.GetCount();
	m_list.InsertString(i, strTmp);

	UpdateData(FALSE);
}

+ Recent posts