안녕하세요. 명월입니다.
최근에는 소켓 통신 프로그램이라던가 네트워크 프로그램을 C++로 작성하는 일이 예전보다는 상당히 줄어든 것 같습니다. C#이나 Java의 경우가 소켓 통신 라이브러리가 더 많아서 그러지 않을까 생각됩니다.
그러나 그 세밀한 차이까지는 저도 잘 모르고 일단 afxsock으로 통신을 할 수 있다라는 것을 인지하고 필요하 실때 사용하면 도움이 되곘습니다.
소스 파일의 상단에 afxsock.h를 선언하겠습니다.
WSADATA wsadata;
WSAStartup(MAKEWORD(2,2),&wsadata);
SOCKET s;
SOCKET client_s;
SOCKADDR_IN m_addr;
SOCKADDR_IN m_clientAddr;
int nLen = sizeof(m_clientAddr);
char ipbuf[16];
s = socket(AF_INET,SOCK_STREAM, 0);
m_addr.sin_family = AF_INET;
m_addr.sin_addr.s_addr = htonl(INADDR_ANY);
m_addr.sin_port = htons(9999);
bind(s, (LPSOCKADDR)&m_addr, sizeof(m_addr));
listen(s, 5);
int a=0;
while(true)
{
if (( client_s = accept(s, (LPSOCKADDR)&m_clientAddr, (int *)&nLen)) == INVALID_SOCKET)
{
printf("에러");
}
else
{
char* buf;
buf = (char *)malloc(1024);
memset(buf,0,1024);
buf = "Hello world\n";
printf("%s",buf);
send(client_s,buf,1024,0);
}
printf("%d\n",a);
a++;
closesocket(client_s);
}
closesocket(s);
소켓 통신은 한쪽만으로 결과를 확인 하기 어려우니 클라이언트에서 결과화면을 확인하겠습니다.
참고 소스 :Blog20120930[1].zip
'Development note > C , C++ , MFC' 카테고리의 다른 글
[C++] C++에서 사용되는 문자열 타입(LPSTR, LPCSTR, LPCTSTR, LPCWSTR), 메모리 누수(memory leak) 체크하는 방법과 UTF8 변환하는 방법 (0) | 2020.04.17 |
---|---|
[C++] C++과 C#의 소켓 통신을 이용해 파일 전송하는 방법 (0) | 2020.04.16 |
[C++] C++과 C#의 소켓 통신을 하는 방법(문자열 송수신) (0) | 2020.04.15 |
[MFC] 서비스 프로그램 (6) | 2012.12.02 |
[C++] ShowWindow 메크로 상수, Window 메시지 상수 (0) | 2012.10.20 |
[C++] afxsock 통신 - 클라이언트편 (0) | 2012.09.30 |
[C++] C++ Dll 만들어서 C#에서 사용하기 (마샬링) (2) | 2012.09.23 |
[C++] ActiveX 만들기 (5) | 2012.09.14 |