/******************************************************************************** * Copyright: (C) 2014 Guo Wenxue * All rights reserved. * * Filename: cp_socket.h * Description: This head file * * Version: 1.0.0(11/19/2014) * Author: Guo Wenxue * ChangeLog: 1, Release initial version on "11/19/2014 12:16:45 AM" * ********************************************************************************/ #ifndef __CP_SOCKET_H_ #define __CP_SOCKET_H_ #include #include #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