336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
소켓 통신 #2 - AF_INET 사용하기 (4)
- by Tapito
이전 포스팅까지 해서 서버와 클라이언트간의 연결 작업은 모두 마쳤습니다. 이제 본격적으로 데이터를 교환해보겠습니다.
데이터의 교환은 전송을 담당하는 send와 수신을 담당하는 recv 함수로 수행됩니다.
int send(SOCKET s, const char * buf, int len, int flags); int recv(SOCKET s, char * buf, int len, int flags);
s: 데이터를 주고 받을 대상을 나타내는 소켓입니다.
buf: 주고 받을 데이터가 기록되어있거나 기록될 버퍼입니다.
len: 버퍼의 크기(바이트)입니다.
flags: 송수신 관련 옵션입니다. 현재로서는 0으로 해도 무방합니다.
반환 값은 상대방에게 실제로 송신 또는 수신한 데이터 바이트 수로 len보다 작거나 같을 수 있습니다. 전송 이상 시 SOCKET_ERROR이 반환됩니다.
사용 방법을 보면
/* 사용 예 */
/* 상대방으로 보낼 메시지 */
char message[] = "Hello, World!";
/* 상대방에게서 전해오는 메시지 */
char buffer[256];
// ... 소켓 세팅 생략
strcpy(buffer, message);
/* 보낼 때 */
printf("sending...\n");
status = send(sockServer, buffer, sizeof(buffer), 0);
if (status == SOCKET_ERROR) // 전송 이상 시 소켓 닫고 프로그램 종료
{
printf("send Error.\n");
closesocket(sockServer);
return -1;
}
printf("sent.\n");
/* 받을 때 */
printf("receiving...\n");
status = recv(sockServer, buffer, sizeof(buffer), 0);
if (status == SOCKET_ERROR)
{
printf("recv Error.\n");
closesocket(sockServer);
return -1;
}
printf("received.\n");'Programming Language > C&C++' 카테고리의 다른 글
| 소켓 통신 #3 - ICMP 클라이언트 구현하기(1) (0) | 2014.11.11 |
|---|---|
| 소켓 함수를 사용하여 도메인을 IP주소간 상호 변환하기 (0) | 2014.11.05 |
| 소켓 통신 #2 - AF_INET 사용하기 (3) (0) | 2014.09.20 |
| 소켓 통신 #2 - AF_INET 사용하기 (2) (0) | 2014.09.19 |
| 소켓 통신 #2 - AF_INET 사용하기 (1) (0) | 2014.09.19 |