📄 mysocket.h.txt
字号:
/*file:mysocket.h*/
#include <unistd.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/time.h>
/*Define constant*/
const unsigned MysBUF_SIZE = 1024;
const unsigned MysMAX_NAME_LEN = 256;
const unsigned MysRX_BUF_SIZE = 4096;
const unsigned MysTX_BUF_SIZE = 4096;
const unsigned MAXCONN = 5;
const unsigned MySOCKET_DEFAULT_PORT = 1234;
enum MySocketError{
MySOCKET_NO_ERROR,
MySOCKET_INVALID_ERROR_CODE,
MySOCKET_ACCEPT_ERROR,
MySOCKET_BIND_ERROR,
MySOCKET_BUFOVER_ERROR,
MySOCKET_CONNET_ERROR,
MySOCKET_FILESYSTEM_ERROR,
MySOCKET_GETOPTION_ERROR,
MySOCKET_HOSTNAME_ERROR,
MySOCKET_INIT_ERROR,
MySOCKET_LISTEN_ERROR,
MySOCKET_PEERNAME_ERROR,
MySOCKET_PROTOCOL_ERROR,
MySOCKET_RECEIVE_ERROR,
MySOCKET_REQUEST_TIMEOUT,
MySOCKET_SERVICE_ERROR,
MySOCKET_SETOPTION_ERROR,
MySOCKET_SOCKNAME_ERROR,
MySOCKET_SOCKETTYPE_ERROR,
MySOCKET_TRANSMIT_ERROR,
};
class MySocket
{
protected:
sa_family_t address_family;
int protocol_family;
int socket_type;
int port_number;
int mysocket;
int conn_socket;
MyScocketError socket_error;
protected:
int bytes_read;
int bytes_moved;
int is_connected;
int is_bound;
public:
sockaddr_in sin;
sockaddr_in remote_sin;
public:
MySocket();
MySocket(int st,int port,char * hostname = 0);
MySocket(sa_family_t af,int st,int pf,int port,char *hostname = 0);
virtual ~MySocket();
public:
void SetAddressFamily(sa_family_t af) { address_family = af;}
void SetProtocolFamily(int pf) {protocol_family = pf;}
int GetProtocolFamily() {return protocol_family;}
void SetSocketType(int st) { return socket_type;}
int GetSocketType() {port_number = p; }
void SetBoundSocket(int p) {port_number = p; }
int GetBouneSocket() {return Mysocket;}
int GetSocket() {return Mysocket;}
int GetRemoteSocket() {return conn_soccket;}
public :
int Socket();
int InitSocket(int st,int port,char *hostname = 0);
int InitSocket(sa_family_t af,int st,int pf,int port,char * hostname = 0);
void Close();
void Close(int &s);
void CloseSocket();
void CloseRemoteSocket();
int Bind();
int Connect();
int Accept();
int Listen(int max_connections = MAXCONN);
int ShutDown(int how = 0);
void ShutDown(int &s,int how = 0);
void ShutDown(int how = 0);
void ShutDownSocket(int how = 0);
void ShutDownRemoteSocket(int how = 0);
int GetSockOpt(int s,int level,int optName,void *optVal,unsigned *optLen);
int GetSockOpt(int level,int optName,void *optVal,unsigned *optLen);
int SetSockOpt(int s,int level,int optName,const void * optVal,unsigned optLen);
int SetSockOpt(int level,int optName,const void *optVal,unsigned optLen);
int Recv(void *buf,int bytes,int bytes,int flags = 0);
int Recv(int s,void *buf,int bytes,int flags = 0);
int Recv(void *buf,int bytes,int seconds,int useconds,int flags = 0);
int Recv(int s ,void *buf,int bytes,int seconds,int useconds,int flags = 0);
int Send(const void *buf,int bytes,int flags = 0);
int Send(int s ,const void*buf,int bytes,int flags = 0);
int RemoteRecv(void *buf,int bytes,int seconds,int useconds,int flags = 0);
int RemoteRecv(void *buf,int bytes,int flags = 0);
int RemoteSend(const void *buf,int bytes,int flags = );
void ResetRead() {bytes_read =0;}
void ResetWrite() {bytes_moved = 0;}
int GetPeerName(int s,sockaddr_in *sa);
int GetPeerName();
int GetSockName(int s,sockaddr_in *sa);
int GetSockName();
int GetServByteName(char *name,char *protocol =0);
int GetServByPort(int port,char *protocol = 0);
servent *GetServiceInfomation(char *name,char *protocol = 0);
servent *GetServiceInfomation(int port,char *protocol =0);
int GetPortNumber();
int GetRemotePortNumber();
int GetHostName(char *sbuf);
int GetIPAddress(char *sbuf);
int GetDomainName(char *sbuf);
int GetBoundIPAddress(char *sbuf);
int GetRemoteHostName(char *sbuf);
hostent * GetHostInformation(char *hostname);
void GetClientInfo(char *client_name,int &r_port);
sa_family_t GetAddressFamily();
sa_family_t GetRemoteAddressFamily();
int ReadSelect(int s,int seconds,int useconds);
int BytesRead(){return bytes_read;}
int BytesMoved(return bytes_moved;)
int SetBytesRead(int bytes = 0) {return bytes_read= bytes;}
int SetBytesMoved(int bytes = 0 ) {return bytes_moved = bytes; }
int *GetBytesRead() {return &bytes_read;}
int *GetBytesMoved() {return &bytes_moved;}
int IsConnect() {return is_connected == 1;}
int isBound() {retuirn is_bound == 1;}
int SetSocket(int s) {return Mysocket = s;}
int SetRemotesSocket(int s) {return conn_socket = s;}
void ReleaseSocket() {Mysocket = (int )-1;}
void ReleaseRemoteSocket() {conn_socket = (int ) -1;}
int RecvFrom(int s,sockaddr_in *sa,void *buf,int bytes ,int seconds,int useconds,int flags = 0);
int RecvFrom(int s,sockaddr_int *sa,void *buf,intbytes,int flags = 0);
int SendTo(int s,sockaddr_in *sa,void *buf,int byts,int flags = 0);
int RecvFrom(void *buf,int bytes,int flags =0 );
int RecvFrom(void *buf,int bytes,int seconds,int useconds,int flags =0 );
int SendTo(void *buf,int bytes,int flags =0);
MySocketError GetSocketError(){ return socket_error;}
MySocketError GetSocketError() const{return socket_error;}
MySocketError SetSocketError( MySocketError err)
{return sock_error = err;}
MySocketError ResetSocketError(){
return socket_error = MySOCKET_NO_ERROR;
}
MySocketError ResetError(){
return socket_error = MySOCKET_NO_ERROR;
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -