⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 address.cpp

📁 一个HTTP协议的封装类
💻 CPP
字号:
//#ifdef  WIN32
//#include "StdAfx.h"
//#define	WIN32
//#endif
#include "StdAfx.h"
#include "Address.h"

namespace fs
{
	namespace socket
	{
		VOID Address::Init()
		{
			addr.sin_family=AF_INET;
			addr.sin_addr.S_un.S_addr=INADDR_ANY;
		}

		void Address::SetPort( UINT port )
		{
			addr.sin_port=htons(port);
		}

		BOOL Address::Set(const LPCSTR ip,UINT port,BOOL isDomainName )
		{
			if (isDomainName)
			{
				struct hostent* hp=gethostbyname(ip);
				if (!hp)
				{
					return FALSE;
				}
				
				char* haddr=(char*)(hp->h_addr);
				memcpy((char*)&addr.sin_addr,haddr,hp->h_length);
			}
			else
			{
				addr.sin_addr.S_un.S_addr=inet_addr((CHAR*)ip);
			}
			SetPort(port);

			return TRUE;
		}

		void Address::GetIp( LPCSTR ip,int len )
		{
			memcpy((VOID*)ip,inet_ntoa(addr.sin_addr),len);
		}

		CHAR* Address::GetIp()
		{
			return inet_ntoa(addr.sin_addr);
		}

		Address::Address( UINT port )
		{
			Init();
			SetPort(port);
		}

		Address::Address( LPCSTR ip,UINT port )
		{
			Init();
			Set(ip,port);
		}

		Address::Address( VOID )
		{
			Init();
		}
		UINT Address::GetPort()
		{
			return ntohs(addr.sin_port);
		}

		LPSOCKADDR Address::GetPtr()
		{
			return (LPSOCKADDR)&addr;
		}

		UINT Address::GetSize()
		{
			return sizeof(addr);
		}

		Address::~Address()
		{

		}
	}
}

⌨️ 快捷键说明

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