tcpsocket.h
来自「网络socket,IO,线程池」· C头文件 代码 · 共 104 行
H
104 行
/*
2003 by zhy
*/
#ifndef _MY_TCP_SOCKET_H
#define _MY_TCP_SOCKET_H
#pragma warning(disable:4786)
#include <string>
using namespace std;
#include <winsock2.h>
#include "SocketBase.h"
namespace NET{
class CTcpSocket:public CSocketBase
{
public:
////////////////////////////////////////////////////////////////////////////
// Constructors / Destructor //
////////////////////////////////////////////////////////////////////////////
// Construct
CTcpSocket(SOCKET sock);
// Deconstruct
~CTcpSocket();
////////////////////////////////////////////////////////////////////////////
// Inline Set/Get Operations //
////////////////////////////////////////////////////////////////////////////
inline int Gettimeout() const { return m_timeout; }
inline int Gettimeoutsec_u() const { return m_timeoutU; }
inline void Settimeout(int timeout = 0,int timeoutUsec = 0)
{
m_timeout = timeout;
m_timeoutU = timeoutUsec;
}
// Get Own address
inline int Getsockname();
inline bool Getsockip(unsigned char* ip);
inline bool Getsockip(string& ip);
// Get Peer address
inline int Getpeername();
inline bool Getpeerip(unsigned char* ip);
inline bool Getpeerip(string& ip);
////////////////////////////////////////////////////////////////////////////
// Operations //
////////////////////////////////////////////////////////////////////////////
bool Connect(const char * ip,unsigned short port);
bool Listen(unsigned short port,int len = 5,unsigned long ip=INADDR_ANY,bool boBlocking = true);
bool Accept(CTcpSocket& socket);
bool Acceptfrom(CTcpSocket& slisten);
// the Main R/W Operation
int Write(const void *buf, size_t len);
int Read(void *buf, size_t len);
// Close
void Close();
void Onlyclose();
void Shutdown();
// Hidden Type Change
operator SOCKET() const { return m_sock; }
protected:
////////////////////////////////////////////////////////////////////////////
// Inner Operations //
////////////////////////////////////////////////////////////////////////////
void FromSocket(SOCKET id = INVALID_SOCKET);
void FromSocket(SOCKET id ,struct sockaddr_in *name, int *namelen);
protected:
sockaddr_in m_peeradd;
sockaddr_in m_sockadd;
int m_nLenpeeraddr;
int m_nLensockaddr;
int m_timeout;
int m_timeoutU;
bool m_isserver;
};
}
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?