MFC 에서 기본적인 소켓을 열기 위한 코드.
====================================================================
SOCKET mysocket = INVALID_SOCKET;
mysocket = socket(AF_INET, SOCK_STREAM, 0);
if(mysocket == INVALID_SOCKET)
{
CString str;
str.Format(_T("SOCKET mysocket init fail.(%d)"), WSAGetLastError());
AppendRichEditText(str);
}
else
{
sockaddr_in addr = {0};
int addrlen = sizeof(addr);
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr("192.168.0.38");
addr.sin_port = htons(3211);
int ret = connect(mysocket, (sockaddr *)&addr, addrlen);
if(ret == SOCKET_ERROR)
{
AppendRichEditText(_T("SOCKET mysocket connect fail."));
}
else
{
AppendRichEditText(_T("dllcsta.CSTA_Client(mysocket);"));
dllcsta.CSTA_Client(mysocket);
}
====================================================================
위와 같이 코드를 작성하고 나서, 프로그램을 실행하고 동작을 하면
아래와 같이 에러가 발생한다 (10093)
SOCKET mysocket init fail.(10093)
====================================================================
그러면 아래와 같이 생성자에 "AfxSocketInit();" 를 추가한다.
====================================================================
CABCDlg::CABCDlg(CWnd* pParent /*=NULL*/)
: CDialog(CABCDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
AfxSocketInit();//요 친구를 추가하는 것이다
}
====================================================================
짜잔~
빌드중 아래와 같은 에러가 발생한다면...
abcdlg.cpp(0) : error C3861: 'AfxSocketInit': identifier not found
====================================================================
인클루드를 추가한다.
#include "afxsock.h"
====================================================================
====================================================================
여기까지다~ 이후에 발생한 에러는 삽질의 시작을 의미한다!!
====================================================================
0 개의 댓글:
댓글 쓰기