int main(int argc, char **argv)
{
int socket_des;
int read_len;
int address_len;
int real_send_len;
int real_receive_len;
char server_input[BUFFER_SIZE];
char client_message[BUFFER_SIZE];
struct timeval tv;
struct sockaddr_in address;
fd_set readfds;
int main(int argc, char **argv)
{
int rtval;
int read_len;
int socket_des;
int address_len;
int real_send_len;
int real_receive_len;
char client_input[BUFFER_SIZE];
char server_message[BUFFER_SIZE];
struct timeval tv;
struct sockaddr_in address;
fd_set readfds;
int main(){
int sockfd,connfd;
int opt; /* socket option SO_REUSEADDR */
SockAddr_In server; /* server's address information */
SockAddr_In client; /* client's address information */
pthread_t thread;
int sin_length; /* the length of sockaddr_in */
void handle_request(int connfd){
int num; /* the number of receiving client's data */
int proxy_sockfd;
int proxy_connfd;
int num_select;
int port_tmp;
char recv_buf[MAX_DATA_SIZE],send_buf[MAX_DATA_SIZE];
char* url_begin;
char* url_end;
char* url;
char* url_tmp;
SockAddr_In proxy;
struct hostent* hs;
fd_set read_set;