Changeset 35 in libcf for trunk/include/cf_socket.h


Ignore:
Timestamp:
02/05/13 18:18:37 (11 years ago)
Author:
cheese
Message:

#1 separate example code and doxygen comment and fix logging push logic by vfire

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/cf_socket.h

    r34 r35  
    66 * @remark TCP 소켓만 지원됨
    77 *
    8  * @section 샘플코드(서버)
    9  * @code
    10 
    11 #include "cf_socket.h"
    12 
    13 int main (void) {
    14     int srvsock = 0;
    15     int clntsock = 0;
    16     short port = 12345;
    17     int recvd = 0;
    18     char buf[1024] = {0x00,};
    19 
    20     if (CF_Socket_Initialize () < 0) {
    21         // error
    22     }
    23     srvsock = CF_Socket_Server (port, 5);
    24     if (srvsock < 0) {
    25         // error
    26     }
    27     clntsock = CF_Socket_Accept (srvsock, NULL);
    28     if (clntsock < 0) {
    29         // error
    30     }
    31     if ((recvd = CF_Socket_Recv (clntsock, buf, sizeof (buf))) < 0) {
    32         // error
    33     }
    34     if (CF_Socket_Send (clntsock, buf, recvd) < 0) {
    35         // error
    36     }
    37     CF_Socket_Close (srvsock);
    38     CF_Socket_Finalize ();
    39 
    40     return 0;
    41 }
    42 
    43  * @endcode
    44  *
    45  * @section 샘플코드(클라이언트)
    46  * @code
    47 
    48 #include "cf_socket.h"
    49 
    50 int main (void) {
    51     int sock = 0;
    52     int recvd = 0;
    53     char buf[1024] = {0x00,};
    54     short port = 12345;
    55 
    56     if (CF_Socket_Initialize () < 0) {
    57         // error
    58     }
    59     sock = CF_Socket_Connect ("localhost", port);
    60     if (sock < 0) {
    61         // error
    62     }
    63     if (CF_Socket_Send (sock, buf, sizeof (buf)) < 0) {
    64         // error
    65     }
    66     if ((recvd = CF_Socket_Recv (sock, buf, sizeof (buf))) < 0) {
    67         // error
    68     }
    69     CF_Socket_Close (sock);
    70     CF_Socket_Finalize ();
    71 
    72     return 0;
    73 }
    74 
    75  * @endcode
     8 * @example socket_server.c
     9 * @example socket_client.c
    7610 */
    7711#ifndef __CF_SOCKET_H__
     
    11751#endif
    11852
    119 /**
    120  * 소켓이 초기화 상태 확인
    121  *
    122  * @return 초기화 된 경우, CF_TRUE; 그렇지 않은 경우, CF_FALSE
    123  */
    12453CF_EXPORT CF_BOOL
    12554CF_Socket_IsInitialized (void);
    12655
    127 /**
    128  * 소켓 초기화
    129  *
    130  * @return 성공 시, CF_OK; 실패 시, 오류 코드
    131  */
    13256CF_EXPORT int
    13357CF_Socket_Initialize    (void);
    13458
    135 /**
    136  * 소켓 해제
    137  *
    138  * @return 성공 시, CF_OK; 실패 시, 오류 코드
    139  */
    14059CF_EXPORT int
    14160CF_Socket_Finalize      (void);
    14261
    143 /**
    144  * 소켓 닫기
    145  *
    146  * @return 성공 시, CF_OK; 실패 시, 오류 코드
    147  *
    148  * @param sock 소켓
    149  */
    15062CF_EXPORT int
    15163CF_Socket_Close         (const int sock);
    15264
    153 /**
    154  * 소켓 옵션 설정
    155  *
    156  * @return 성공 시 CF_OK; 실패 시, 오류 코드
    157  *
    158  * @param sock      소켓
    159  * @param optname   옵션 이름
    160  * @param optval    설정할 옵션 값의 메모리
    161  * @param optlen    설정할 옵션의 길이
    162  */
    16365CF_EXPORT int
    16466CF_Socket_SetOption     (const int      sock,
     
    16769                         const size_t   optlen);
    16870
    169 /**
    170  * 소켓 옵션 얻기
    171  *
    172  * @return 성공 시 CF_OK; 실패 시, 오류 코드
    173  *
    174  * @param sock      소켓
    175  * @param optname   옵션 이름
    176  * @param optval    옵션 값을 가져올 메모리
    177  * @param optlen    옵션 길이를 가져올 메모리
    178  */
    17971CF_EXPORT int
    18072CF_Socket_GetOption     (const int  sock,
     
    18375                         size_t     * optlen);
    18476
    185 /**
    186  * 소켓에 타임아웃 설정
    187  *
    188  * @return 성공 시 CF_OK; 실패 시, 오류 코드
    189  *
    190  * @param sock      소켓
    191  * @param timeout   타임아웃(sec)
    192  */
    19377CF_EXPORT int
    19478CF_Socket_SetTimeout    (const int  sock,
    19579                         const int  timeout);
    19680
    197 /**
    198  * 소켓 연결
    199  *
    200  * @return 성공 시, 연결된 소켓; 실패 시, 오류 코드
    201  *
    202  * @param ip    연결할 호스트의 주소 (도메인 이름 가능)
    203  * @param port  연결할 호스트의 포트번호
    204  */
    20581CF_EXPORT int
    20682CF_Socket_Connect       (const char             * ip,
    20783                         const unsigned short   port);
    20884
    209 /**
    210  * 서버 열기
    211  *
    212  * @return 성공 시, 서버 소켓; 실패 시, 오류 코드
    213  *
    214  * @param port      서버 포트
    215  * @param backlog   listen 시의 backlog 수
    216  */
    21785CF_EXPORT int
    21886CF_Socket_Server        (const unsigned short   port,
    21987                         const int              backlog);
    22088
    221 /**
    222  * 소켓 연결
    223  *
    224  * @return 성공 시, 연결된 소켓; 실패 시, 오류 코드
    225  *
    226  * @param sock      서버 소켓
    227  * @param address   [옵션] 클라이언트 정보를 담을 sockaddr_in 구조체 포인터
    228  */
    22989CF_EXPORT int
    23090CF_Socket_Accept        (const int          sock,
    23191                         struct sockaddr_in * address);
    23292
    233 /**
    234  * 데이터 송신
    235  *
    236  * @return 성공 시, CF_OK; 실패 시, 오류 코드
    237  *
    238  * @param sock  소켓
    239  * @param buf   송신할 데이터
    240  * @param len   송신할 데이터의 길이
    241  */
    24293CF_EXPORT int
    24394CF_Socket_Send          (const int  sock,
     
    24596                         const int  len);
    24697
    247 /**
    248  * 데이터 수신
    249  *
    250  * @return 성공 시, 수신한 데이터의 길이; 실패 시, 오류 코드
    251  *
    252  * @param sock  소켓
    253  * @param buf   데이터를 수신할 버퍼
    254  * @param len   데이터를 수신할 버퍼의 최대 크기
    255  */
    25698CF_EXPORT int
    25799CF_Socket_Recv          (const int  sock,
Note: See TracChangeset for help on using the changeset viewer.