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 |