// DistInfoDlg.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "ConsoleApp.h" #include "DistInfoDlg.h" #include ".\distinfodlg.h" #include "../ConsoleTransfer(DN)/NoticeStruct.h" #include "../CommLib/CommLib.h" // CDistInfoDlg ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CDistInfoDlg, CDialog) CDistInfoDlg::CDistInfoDlg(CWnd* pParent /*=NULL*/) : CDialog(CDistInfoDlg::IDD, pParent) , m_dist_path(_T("")) , m_file_cnt(_T("")) , m_dist_complete(_T("")) , m_dist_now(_T("")) , m_dist_fail(_T("")) { } CDistInfoDlg::~CDistInfoDlg() { } void CDistInfoDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_DIST_PATH, m_dist_path); DDX_Text(pDX, IDC_FILE_CNT, m_file_cnt); DDX_Text(pDX, IDC_DIST_COMPLETE, m_dist_complete); DDX_Text(pDX, IDC_DIST_NOW, m_dist_now); DDX_Text(pDX, IDC_DIST_FAIL, m_dist_fail); } BEGIN_MESSAGE_MAP(CDistInfoDlg, CDialog) END_MESSAGE_MAP() // CDistInfoDlg ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CDistInfoDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ­ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù. GetDistInfo(); UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control // ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù. } void CDistInfoDlg::GetDistInfo(void) { tsvc_req_header_t tsvc_req_header; tsvc_auth_info_t auth_req_body; tsvc_ddi_req_body_t ddi_req_body; tsvc_rsp_header_t *tsvc_rsp_header_ptr; tsvc_ddi_rsp_body_t *ddi_rsp_body_ptr; char recv_buffer[8196]; int result_code; CString ip; // get auth string ///////////////////////// CString auth_str; auth_str = this->m_cp + "@" + this->m_user; /////////////////////////////////////////// SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (sock == INVALID_SOCKET) { goto EXIT_FUNCTION; } bool bRet = false; DWORD dwWritten; char s[1024]; sockaddr_in sa; sa.sin_family = AF_INET; ip = m_sutil.get_first_rcts(this->m_RCTSAddress); if (ip.GetLength()>0) sa.sin_addr.s_addr = m_sutil.conv_addr(ip.GetString()); else goto EXIT_FUNCTION; sa.sin_port = htons(RCTS_NOTICE_PORT); connect(sock, (SOCKADDR*)&sa, sizeof(sa)); tsvc_req_header.op_num_w = ::htons(OP_NUM_AUTH); tsvc_req_header.op_seq_w = ::htons(OP_SEQ_REQ); ::sprintf(auth_req_body.ua_str, auth_str); ::sprintf(auth_req_body.up_str, this->m_passwd); m_sutil._sh_send(sock, (char*)&tsvc_req_header, sizeof(tsvc_req_header)); m_sutil._sh_send(sock, (char*)&auth_req_body, sizeof(auth_req_body)); memset(recv_buffer , 0x00 , sizeof(recv_buffer)); if (m_sutil._rtxTimer(5 , sock) < 0) goto EXIT_FUNCTION; m_sutil._sh_recv(sock, (char*)&recv_buffer, sizeof(recv_buffer)); tsvc_rsp_header_ptr = reinterpret_cast(&recv_buffer); result_code = ntohs(tsvc_rsp_header_ptr->op_result_code_w); // ÀÎÁõ if (RSP_CODE_AUTH_SUCCESS==result_code) { // SetNoticeStep(200); } else { // SetNoticeStep(201); goto EXIT_FUNCTION; } tsvc_req_header.op_num_w = ::htons(OP_NUM_DDI); tsvc_req_header.op_seq_w = ::htons(OP_SEQ_REQ); ::sprintf(ddi_req_body.uri_str, "%s", this->m_dist_path); m_sutil._sh_send(sock,(char *)&tsvc_req_header, sizeof(tsvc_req_header)); m_sutil._sh_send(sock,(char *)&ddi_req_body, sizeof(ddi_req_body)); memset(recv_buffer , 0x00 , sizeof(recv_buffer)); if (m_sutil._rtxTimer(5 , sock) < 0) goto EXIT_FUNCTION; m_sutil._sh_recv(sock, (char*)&recv_buffer, sizeof(tsvc_rsp_header_t)); result_code = ntohs(tsvc_rsp_header_ptr->op_result_code_w); // ¹èÆ÷Á¤º¸ if (RSP_CODE_DIST_SUCCESS==result_code) { // SetNoticeStep(200); } else { // SetNoticeStep(201); goto EXIT_FUNCTION; } memset(&recv_buffer , 0x00 , sizeof(recv_buffer)); if (m_sutil._rtxTimer(5 , sock) < 0) goto EXIT_FUNCTION; m_sutil._sh_recv(sock, (char*)&recv_buffer, sizeof(tsvc_ddi_rsp_body_t)); ddi_rsp_body_ptr = reinterpret_cast(&recv_buffer); char t[128]; sprintf(t , "%d" , ntohs(ddi_rsp_body_ptr->file_cnt)); m_file_cnt = t; sprintf(t , "%d" , ntohs(ddi_rsp_body_ptr->dist_fail)); m_dist_fail = t; sprintf(t , "%d" , ntohs(ddi_rsp_body_ptr->dist_now)); m_dist_now = t; sprintf(t , "%d" , ntohs(ddi_rsp_body_ptr->dist_complete)); m_dist_complete = t; //¹èÆ÷ if (RSP_CODE_DIST_SUCCESS==result_code) { // SetNoticeStep(400); } else { // SetNoticeStep(401); goto EXIT_FUNCTION; } EXIT_FUNCTION: if (sock != INVALID_SOCKET) closesocket(sock); // PostMessage(WM_CLOSE); }