亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 869 | 回復: 0
打印 上一主題 下一主題

socket類 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-09-15 09:19 |只看該作者 |倒序瀏覽

               
               
                #ifndef        SERVERSOCKET__H
#define        SERVERSOCKET__H

#include  "Common.h"
#define        SOCKERRO        -1
#define        SOCKSUCC        0

class ServerSocket
{
    private:
        int sin_size;
         int sockfd,new_fd;
         unsigned short port;
         struct sockaddr_in my_addr,their_addr,get_addr;
  
     public:
         ServerSocket();
         virtual ~ServerSocket();
         
         //創(chuàng)建套接字,參數(shù)為SOCK_DGRAM或SOCK_STREAM
         int Socket(int type);
         
         //設置監(jiān)聽端口
         void SetPort(unsigned short in_port);
         
         //綁定端口
         bool Bind();
         
         //設置返回端口
         void SetRemotePort(unsigned short in_port);
         
         //取得返回端口
         unsigned short GetRemotePort();
         
         //設置返回地址
         bool SetRemoteAddrees(const char *addrees);
         
         //取得返回地址
         void GetRemoteAddrees(char *addrees);
         
         //連接
         bool Connect();
         
         //監(jiān)聽
         void Listen();
         
         //獲取新連接
         void Accept();
         
         //發(fā)送函數(shù)
         int Send(const char *buf,int len);
         int Sendto(const char *buf,int len);
         
         //接收函數(shù)
         int Recv(char *buf,int len);
         int Recvfrom(char *buf,int len);
         
         //關閉套接字
         void Close();
         
};

#endif
# #include    "ServerSocket.h"   
#   
# /*  
# *   服務端Socket類  
# */   
#   
# ServerSocket::ServerSocket(){   
#        
# }   
#   
# ServerSocket::~ServerSocket(){   
#        
#     Close();   
#        
# }   
#   
# int ServerSocket::Socket(int type){   
#        
#     sockfd = socket(AF_INET, type, 0);   
#     return sockfd;   
#        
# }   
#   
# void ServerSocket::SetPort(unsigned short in_port){   
#        
#     my_addr.sin_family = AF_INET;   
#     port = in_port;   
#     my_addr.sin_port = htons(port);   
#     my_addr.sin_addr.s_addr = INADDR_ANY;   
#   
# }   
#   
# void ServerSocket::SetRemotePort(unsigned short in_port){   
#        
#     their_addr.sin_port=htons(in_port);   
#        
# }   
#   
# unsigned short ServerSocket::GetRemotePort(){   
#        
#     return ntohs(get_addr.sin_port);   
#        
# }   
#   
# bool ServerSocket::Bind(){   
#        
#     if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr))==-1)   
#         return false;   
#            
#     return true;   
#        
# }   
#   
# int ServerSocket::Recvfrom(char *buf,int len){   
#        
#     int numbytes;   
#     socklen_t addr_len = sizeof(get_addr);   
#     numbytes = recvfrom(sockfd,buf,len,0,(struct sockaddr *)&get_addr,&addr_len);   
#     if(numbytes == -1)   
#     {   
#     return false;   
#     }   
#     buf[numbytes] = '\0';   
#   
#     return numbytes;   
#        
# }   
#   
# int ServerSocket::Sendto(const char *buf,int len){   
#        
#     return sendto(sockfd,buf,len,0,(struct sockaddr *)&their_addr,sizeof(struct sockaddr));   
#        
# }   
#   
# bool ServerSocket::SetRemoteAddrees(const char* addrees){   
#        
#        
#     struct hostent *he;   
#     if((he = gethostbyname(addrees)) == NULL)   
#     return false;   
#        
#     their_addr.sin_family = AF_INET;   
#     their_addr.sin_port = htons(port);   
#     their_addr.sin_addr = *((struct in_addr *)he->h_addr);   
#        
#     return true;   
#        
# }   
#   
# void ServerSocket::GetRemoteAddrees(char *addrees){   
#        
#     strcpy(addrees,inet_ntoa(get_addr.sin_addr));   
#     SetRemoteAddrees(addrees);   
# }   
#   
# void ServerSocket::Close(){   
#        
#     close(sockfd);   
#     close(new_fd);   
#   
# }   
#   
# void ServerSocket::Listen(){   
#        
#      listen(sockfd,10);   
#         
# }   
#   
# void ServerSocket::Accept(){   
#        
#     socklen_t size = sizeof(struct sockaddr_in);   
#     new_fd = accept(sockfd,(struct sockaddr *)&get_addr,&size);   
#        
# }   
#   
# int ServerSocket::Recv(char *buf,int len){   
#        
#      return recv(new_fd,buf,len,0);   
#         
# }   
#   
# int ServerSocket::Send(const char *buf, int len){   
#        
#     return send(sockfd,buf,len,0);   
#        
# }   
#   
# bool ServerSocket::Connect(){   
#        
#     if(connect(sockfd,(struct sockaddr *)&their_addr, sizeof(struct sockaddr))==-1)   
#     return false;   
#        
#     return true;   
#        
# }   


本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u3/94284/showart_2052556.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP