[C++] afxsock 통신 - 클라이언트편


Development note/C , C++ , MFC  2012. 9. 30. 18:37

안녕하세요. 명월입니다.


전 포스팅에 이어 afxsock의 클라이언트 편을 소개하겠습니다.

바로가기 - afxsock 통신 - 서버편

서버, 클라이언트도 중요하지만 서버에서는 Send 함수, 클라이언트 Recieve 함수도 잘 살펴 봐야겠습니다.

 

그럼 클라이언트 부분을 확인 해 보겠습니다.

소스파일에 afxsock.h 해더를 추가합니다.

WSADATA wsadata;
WSAStartup(MAKEWORD(2,2),&wsadata);
int mysock = socket(PF_INET,SOCK_STREAM,0);
sockaddr_in serverAddress;
memset(&serverAddress,0,sizeof(serverAddress));
serverAddress.sin_addr.s_addr = inet_addr("127.0.0.1");
serverAddress.sin_family = AF_INET;
serverAddress.sin_port = htons(9999);
 
if(connect(mysock,(sockaddr *)&serverAddress,sizeof(serverAddress)) == -1)
{
  printf("연결실패\n");
}
else
{
  printf("연결성공\n");
  CString buf;
  char* recvmsg;
  recvmsg = (char *)malloc(1024);
  recv(mysock,recvmsg,1024,0);
  //CString buf1 = (LPSTR)recvmsg;
  LPSTR buf1 = recvmsg;
  printf("%s\n",buf1);
}

소스에서 보시다시피 서버에서는 Send를 날리고 클라이언트에서는 Recieve를 날립니다.

(※물론 서버에서도 Recieve를 사용할 수 있고 클라이언트에서 Send를 사용할 수 있습니다.)

 

참고 소스 : Blog20120930[2].zip