/********************************************************************************
|
* Copyright: (C) 2014 Guo Wenxue<guowenxue@gmail.com>
|
* All rights reserved.
|
*
|
* Filename: cp_socket.h
|
* Description: This head file
|
*
|
* Version: 1.0.0(11/19/2014)
|
* Author: Guo Wenxue <guowenxue@gmail.com>
|
* ChangeLog: 1, Release initial version on "11/19/2014 12:16:45 AM"
|
*
|
********************************************************************************/
|
#ifndef __CP_SOCKET_H_
|
#define __CP_SOCKET_H_
|
|
#include <sys/types.h>
|
#include <sys/socket.h>
|
|
#define DOMAIN_MAX_LEN 128
|
|
#define SOCK_STAT_INIT 0
|
#define SOCK_STAT_CONNECTING 1
|
#define SOCK_STAT_CONNECTED 2
|
#define SOCK_STAT_DISCONNECT 3
|
|
typedef struct cp_socket_s
|
{
|
char servaddr[DOMAIN_MAX_LEN]; /* connect server hostname or IP address */
|
unsigned short servport; /* connect server port */
|
int fd; /* socket fd */
|
struct sockaddr saddr; /* sockaddr for none-block connect */
|
unsigned char status; /* socket connect status: 0:disconnect 1:connecting 2:connected */
|
} cp_socket_t;
|
|
|
/* Description: create socket object and connect to server in block mode
|
* $sock: socket object, if it's NULL will be malloced.
|
* $servaddr: connect server hostname or IP address
|
* $servport: connect to server port
|
*
|
* Return: socket object address
|
*/
|
extern int cp_sock_block_connect(cp_socket_t *sock, char * servaddr, unsigned short servport);
|
|
|
/* Description: set socket to none block mode */
|
extern int cp_sock_set_nonblock(int sockfd);
|
|
/* Description: create socket object and connect to server in none block mode
|
* $sock: socket object, if it's NULL will be malloced.
|
* $servaddr: connect server hostname or IP address
|
* $servport: connect to server port
|
*
|
* Return: 0: connecting or connected <0: connect failure
|
*/
|
|
extern int cp_sock_nonblock_connect(cp_socket_t *sock, char * servaddr, unsigned short servport);
|
|
|
/* Description: close socket */
|
extern void cp_sock_close(cp_socket_t *sock);
|
|
|
#endif
|