** 완벽하진 않습니다만 기능만 보면 동작은 매끄럽게 됨으로 필요하신부분들만 보시길바랍니다.

TCP/ip Soket data network 

소켓 데이터 구조체 통신 

 

 

#pragma once
#include "afxwin.h"
#include "Client.h"

// ServerDlg 대화 상자입니다.

class ServerDlg : public CDialog
{
DECLARE_DYNAMIC(ServerDlg)

public:
ServerDlg(CWnd* pParent = NULL);   // 표준 생성자입니다.
virtual ~ServerDlg();
Client *m_clientdlg;

// 대화 상자 데이터입니다.
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_D_ServerDlg };
#endif

protected:
virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 지원입니다.
afx_msg void OnBnClickedBsconnecter();
afx_msg void OnDestroy();
afx_msg void OnBnClickedBsdisconnecter();
afx_msg void OnBnClickedBslogreset();
afx_msg void OnBnClickedBsclear();
afx_msg void OnBnClickedBsloadclear();
afx_msg void OnBnClickedBsdataclear();
afx_msg void OnBnClickedBsload();
CListBox m_ServerSDL;
CListBox m_ServerCDL;
CListBox m_ServerUDL;
CEdit ServerEditLog;
DECLARE_MESSAGE_MAP()


private:


void OpenSocket();
void OpenServer();
void CloseServer();
void C_DataLoad();
void C_DataSubLoad();
void C_DataSave();
void compareMS();


HANDLE m_hWaitAccept;
HANDLE m_evhWaitAccServer;
HANDLE m_hRecvS;
HANDLE m_evhRecvS;

unsigned m_WaitAccept();   //쓰레드 구체적인 선언 부분인데 조사필요 
static unsigned __stdcall _m_WaitAccept(void *p)
{
return ((ServerDlg*)p)->m_WaitAccept();
}

unsigned m_sRecvThread();   //쓰레드 구체적인 선언 부분인데 조사필요 
static unsigned __stdcall _m_sRecvThread(void *p)
{
return ((ServerDlg*)p)->m_sRecvThread();
}


public:
CString m_isOneN;
CString m_isTwoN;
CString m_isThreeN;
CString m_isfourN;
CString m_isPortN;

CString m_sModel;
CString m_sLocation;
CString m_sXaxis;
CString m_sYaxis;
CString m_sVoltage;
CString m_sCurrent;
CString m_Test;

//sub 
CString m_sSubModel;
CString m_sSubLocation;
CString m_sSubXaxis;
CString m_sSubYaxis;
CString m_sSubVoltage;
CString m_sSubCurrent;

CString as;

SOCKET hServer;
SOCKET m_hWaitSocket;
SOCKET hClient;
// SOCKET m_ListenServer;
SOCKADDR_IN tServerSocket; //기본 값 받을곳 
SOCKADDR_IN m_siClientSocket; //기본 값 받을곳 
SOCKADDR_IN m_soServerAPSK;  // accept 받을곳

 char *m_sRecvData;
 int m_iClientLen;
 int m_iSaveData;

/* struct m_cSendData;*/

 struct m_cSendData
 {
 CString cModel = 0;
 CString cLocation = 0;
 CString cXaxis = 0;
 CString cYaxis = 0;
 CString cVoltage = 0;
 CString cCurrent = 0;

 };

 m_cSendData m_struct;

};


*이 게시글에 문제가 있을시  신고보단 지적을 먼저 부탁드립니다. 빠른시간안으로  수정하겠습니다. 감사합니다
제글을  재밌게 봐주셨다면  ♥(공감)한번씩 눌러주시면 감사합니다 좋은하루 되세요!

Cstring 값이 char* 값으로 변환하기 위해서 별짓을 다하다가 외국사이트를 찾던중 여러방식을 조합해보고 

이리굴리고 저리굴리고 하다가 나온방식이  이방식. 

문장이 좀 길고 그래보여도 

확실히 변환되는것을 확인했습니다.

 

방식은 아래와 같습니다.

 

CString csFullAddr = L"100.000.0.0 or qqwweerraassddff";

CStringA csAFullAddr = CStringA(csFullAddr);
const char* cFullAddr = csAFullAddr;
char* cpFullAddr = const_cast<char*>(cFullAddr);

 

변환이 가능하다 .

(.... 3년 가까이 이 지난 지금 다시보니 프로그래밍을 그만둬서그런지 이게 무슨말인지 모르는게 현실...

그리고 이글을 조회수가 2000이 넘어간게 신기하네요 좋은자료로 사용되서 좋습니다)

 

*이 게시글에 문제가 있을시  신고보단 지적을 먼저 부탁드립니다. 빠른시간안으로  수정하겠습니다. 감사합니다
제글을  재밌게 봐주셨다면  ♥(공감)한번씩 눌러주시면 감사합니다 좋은하루 되세요!

+ Recent posts