mysocket.h

来自「在Linux下使用GCC编制的FTP服务器」· C头文件 代码 · 共 52 行

H
52
字号
/****************************************************
*	套接字基类
*	作者	gotter@163.com	2006-04-19
****************************************************/

#ifndef _MY_SOCKET_H_
#define _MY_SOCKET_H_

#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include "Public.h"

typedef int					SOCKET;
#define INVALID_SOCKET		-1
#define	TIMEOUT_RECV		0x00000001
#define	TIMEOUT_SEND		0x00000002

class CMySocket
{
protected:
	SOCKET	m_hSocket;
public:
	CMySocket();
	virtual CMySocket::~CMySocket();
	int Create();
	virtual int Close();
	int Connect(const char *pszSvrAddr,unsigned nSvrPort);
	int Connect(unsigned nSvrIp,unsigned nSvrPort);
	int Recv(void *pvBuf, int iSize);
	int RecvLine(char *pszDst,int iSize);
	int Send(const void *pvBuf, int iSize);
	int Send(const char *pszBuf);
	int Sendf(const char *pszFormat,...);
	int SetTimeout(int iTime,
		unsigned nType=TIMEOUT_RECV|TIMEOUT_RECV);
	int SetBlockMode(bool bBlock);
	int Listen(unsigned nPort);
	int Bind(unsigned nPort);
	int Accept(CMySocket *pSock);
	SOCKET Accept();
	int Attach(SOCKET hSocket);
	SOCKET Detach();
	int SetOpt(int nOptName,void *pvOptVal,int iSize);
	int GetOpt(int nOptName,void *pvOptVal);
	static int AddrStr2Int(const char *pszAddr, unsigned &nIp);
	static char *AddrInt2Str(unsigned nIp, char *pszAddr);
	operator SOCKET(){return m_hSocket;}
};

#endif //_MY_SOCKET_H_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?