[C++] afxsock 통신 - 서버편

개발 노트/C 언어  2012.09.30 17:35



안녕하세요. 개발자 명월입니다

 

최근에는 소켓통신 프로그램이라던가 네트워크 프로그램을 C++로 작성하는 일이 예전보다는 상당히 줄어든 것 같습니다. 그래도 C++의 통신이 좋은 점은 C#보다 Java 보다는 객체에 자유롭다는 점이 있겠습니다.

그 차이까지 소개하기는 힘들고 일단 afxsock으로 통신을 할 수 있다라는 것을 인지하고 필요하 실때 사용하면 도움이 되곘습니다.

 

 

 

  

 

소스 파일의 상단에 afxsock.h를 선언하겠습니다.

 

 

 

소스내용입니다.

 

1 WSADATA wsadata;
2 WSAStartup(MAKEWORD(2,2),&wsadata);
3
4 SOCKET s;
5 SOCKET client_s;
6
7 SOCKADDR_IN m_addr;
8 SOCKADDR_IN m_clientAddr;
9
10 int nLen = sizeof(m_clientAddr);
11 char ipbuf[16];
12
13 s = socket(AF_INET,SOCK_STREAM, 0);
14
15 m_addr.sin_family = AF_INET;
16 m_addr.sin_addr.s_addr = htonl(INADDR_ANY);
17 m_addr.sin_port = htons(9999);
18
19 bind(s, (LPSOCKADDR)&m_addr, sizeof(m_addr));
20
21 listen(s, 5);
22 int a=0;
23 while(true){
24 if (( client_s = accept(s, (LPSOCKADDR)&m_clientAddr, (int *)&nLen)) == INVALID_SOCKET) {
25 printf("에러");
26 }
27 else {
28 char* buf;
29 buf = (char *)malloc(1024);
30 memset(buf,0,1024);
31 buf = "Hello world\n";
32 printf("%s",buf);
33 send(client_s,buf,1024,0);
34 }
35 printf("%d\n",a);
36 a++;
37 closesocket(client_s);
38 }
39 closesocket(s);
40

 

소켓 통신은 한쪽만으로 결과를 확인 하기 어려우니 클라이언트에서 결과화면을 확인하겠습니다. 

 

참고 소스 : Blog20120930[1].zip



댓글 0개가 달렸습니다.
댓글쓰기