Changeset 35 in libcf for trunk/include/cf_socket.h
- Timestamp:
- 02/05/13 18:18:37 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/cf_socket.h
r34 r35 6 6 * @remark TCP 소켓만 지원됨 7 7 * 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 76 10 */ 77 11 #ifndef __CF_SOCKET_H__ … … 117 51 #endif 118 52 119 /**120 * 소켓이 초기화 상태 확인121 *122 * @return 초기화 된 경우, CF_TRUE; 그렇지 않은 경우, CF_FALSE123 */124 53 CF_EXPORT CF_BOOL 125 54 CF_Socket_IsInitialized (void); 126 55 127 /**128 * 소켓 초기화129 *130 * @return 성공 시, CF_OK; 실패 시, 오류 코드131 */132 56 CF_EXPORT int 133 57 CF_Socket_Initialize (void); 134 58 135 /**136 * 소켓 해제137 *138 * @return 성공 시, CF_OK; 실패 시, 오류 코드139 */140 59 CF_EXPORT int 141 60 CF_Socket_Finalize (void); 142 61 143 /**144 * 소켓 닫기145 *146 * @return 성공 시, CF_OK; 실패 시, 오류 코드147 *148 * @param sock 소켓149 */150 62 CF_EXPORT int 151 63 CF_Socket_Close (const int sock); 152 64 153 /**154 * 소켓 옵션 설정155 *156 * @return 성공 시 CF_OK; 실패 시, 오류 코드157 *158 * @param sock 소켓159 * @param optname 옵션 이름160 * @param optval 설정할 옵션 값의 메모리161 * @param optlen 설정할 옵션의 길이162 */163 65 CF_EXPORT int 164 66 CF_Socket_SetOption (const int sock, … … 167 69 const size_t optlen); 168 70 169 /**170 * 소켓 옵션 얻기171 *172 * @return 성공 시 CF_OK; 실패 시, 오류 코드173 *174 * @param sock 소켓175 * @param optname 옵션 이름176 * @param optval 옵션 값을 가져올 메모리177 * @param optlen 옵션 길이를 가져올 메모리178 */179 71 CF_EXPORT int 180 72 CF_Socket_GetOption (const int sock, … … 183 75 size_t * optlen); 184 76 185 /**186 * 소켓에 타임아웃 설정187 *188 * @return 성공 시 CF_OK; 실패 시, 오류 코드189 *190 * @param sock 소켓191 * @param timeout 타임아웃(sec)192 */193 77 CF_EXPORT int 194 78 CF_Socket_SetTimeout (const int sock, 195 79 const int timeout); 196 80 197 /**198 * 소켓 연결199 *200 * @return 성공 시, 연결된 소켓; 실패 시, 오류 코드201 *202 * @param ip 연결할 호스트의 주소 (도메인 이름 가능)203 * @param port 연결할 호스트의 포트번호204 */205 81 CF_EXPORT int 206 82 CF_Socket_Connect (const char * ip, 207 83 const unsigned short port); 208 84 209 /**210 * 서버 열기211 *212 * @return 성공 시, 서버 소켓; 실패 시, 오류 코드213 *214 * @param port 서버 포트215 * @param backlog listen 시의 backlog 수216 */217 85 CF_EXPORT int 218 86 CF_Socket_Server (const unsigned short port, 219 87 const int backlog); 220 88 221 /**222 * 소켓 연결223 *224 * @return 성공 시, 연결된 소켓; 실패 시, 오류 코드225 *226 * @param sock 서버 소켓227 * @param address [옵션] 클라이언트 정보를 담을 sockaddr_in 구조체 포인터228 */229 89 CF_EXPORT int 230 90 CF_Socket_Accept (const int sock, 231 91 struct sockaddr_in * address); 232 92 233 /**234 * 데이터 송신235 *236 * @return 성공 시, CF_OK; 실패 시, 오류 코드237 *238 * @param sock 소켓239 * @param buf 송신할 데이터240 * @param len 송신할 데이터의 길이241 */242 93 CF_EXPORT int 243 94 CF_Socket_Send (const int sock, … … 245 96 const int len); 246 97 247 /**248 * 데이터 수신249 *250 * @return 성공 시, 수신한 데이터의 길이; 실패 시, 오류 코드251 *252 * @param sock 소켓253 * @param buf 데이터를 수신할 버퍼254 * @param len 데이터를 수신할 버퍼의 최대 크기255 */256 98 CF_EXPORT int 257 99 CF_Socket_Recv (const int sock,
Note:
See TracChangeset
for help on using the changeset viewer.