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

📄 socket.h

📁 图象处理
💻 H
字号:
// Socket.h: interface for the CSocketBase class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SOCKET_H__E292D93F_5969_4CFC_AA0B_3EF5D4375B49__INCLUDED_)
#define AFX_SOCKET_H__E292D93F_5969_4CFC_AA0B_3EF5D4375B49__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <winsock2.h>
#include <windows.h>
#define socklen_t int

#define SELECT_READ			1
#define SELECT_WRITE		2
#define SELECT_EXCEPT		3

class CSocketBase
{
public:
	CSocketBase::CSocketBase();
	CSocketBase::~CSocketBase();

	void Attach(SOCKET s, sockaddr_in* sAddr);

	SOCKET GetSocket(){return m_hSocket;}
	bool Connected(){return m_bConnected;}//m_hSocket!=INVALID_SOCKET; }

	void GraceShutDown(bool bSender);
	bool ShutDown(int how);
	SOCKET Create(int iType=SOCK_STREAM);
	bool Close(void);
	bool Connect(const char* szRemote, unsigned int uiPort);
	bool Select(int iHow, int iWaitTime);
	int Send(const char* szData, int iLen);
	int Receive(char* szData, int iLen);
	int SendTo(const char* szData, int iLen, const SOCKADDR* pTo, int iToLen);
	int ReceiveFrom(char* szData, int iLen, SOCKADDR* pFrom, socklen_t* piFromLen);
	bool SetSockOpt(int level, int optname, void *optval, int optlen);
	static void SendUDP(const char* szMsg, int length, const char* szIP, unsigned int uiPort);

	char* GetRemoteIP(char* szIP);
	static char* GetLocalIP(char* szIP);

protected:
	struct sockaddr_in m_sockaddr;
	struct sockaddr_in m_rsockaddr;

	SOCKET m_hSocket;
	bool m_bConnected;
	int m_iType;
	short m_iTalkFlag;
};

#endif // !defined(AFX_SOCKET_H__E292D93F_5969_4CFC_AA0B_3EF5D4375B49__INCLUDED_)

⌨️ 快捷键说明

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