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

📄 datagram.h

📁 天之炼狱1服务器端源文件游戏服务端不完整
💻 H
字号:
////////////////////////////////////////////////////////////////////////// Filename    : Datagram.h// Written By  : reiot@ewestsoft.com// Description : ////////////////////////////////////////////////////////////////////////#ifndef __DATAGRAM_H__#define __DATAGRAM_H__#include "Types.h"#include "Exception.h"#include "SocketAPI.h"#if __LINUX__	#include <sys/socket.h>	#include <arpa/inet.h>	#include <netinet/in.h>#elif __WINDOWS__	#include <winsock.h>#endif// forward declarationclass DatagramPacket;////////////////////////////////////////////////////////////////////////// class Datagram;//// UDP 家南栏肺何磐 涝仿罐芭唱 免仿且 单捞鸥狼 笼钦捞促.// 阿 Datagram篮 焊尘 镑 肚绰 焊辰 镑狼 林家甫 啊瘤绊 乐促.////////////////////////////////////////////////////////////////////////class Datagram {public :	// constructor	Datagram () throw ();	// destructor	~Datagram () throw ();	// read DatagramPacket from datagram's internal buffer	void read (char* buf, uint len) throw (Error);	void read (string & str, uint len) throw (Error);	void read (DatagramPacket* & pPacket) throw (ProtocolException, Error);	void read (char   & buf) throw (Error) { read((char*)&buf, szchar  ); }    void read (uchar  & buf) throw (Error) { read((char*)&buf, szuchar ); }    void read (short  & buf) throw (Error) { read((char*)&buf, szshort ); }    void read (ushort & buf) throw (Error) { read((char*)&buf, szushort); }    void read (int    & buf) throw (Error) { read((char*)&buf, szint   ); }    void read (uint   & buf) throw (Error) { read((char*)&buf, szuint  ); }    void read (long   & buf) throw (Error) { read((char*)&buf, szlong  ); }    void read (ulong  & buf) throw (Error) { read((char*)&buf, szulong ); }	// write DatagramPacket into datagram's internal buffer	void write (const char* buf, uint len) throw (Error);	void write (const string & buf) throw (Error);	void write (const DatagramPacket* pPacket) throw (ProtocolException, Error);	void write (char   buf) throw (Error) { write((char*)&buf, szchar  ); }    void write (uchar  buf) throw (Error) { write((char*)&buf, szuchar ); }    void write (short  buf) throw (Error) { write((char*)&buf, szshort ); }    void write (ushort buf) throw (Error) { write((char*)&buf, szushort); }    void write (int    buf) throw (Error) { write((char*)&buf, szint   ); }    void write (uint   buf) throw (Error) { write((char*)&buf, szuint  ); }    void write (long   buf) throw (Error) { write((char*)&buf, szlong  ); }    void write (ulong  buf) throw (Error) { write((char*)&buf, szulong ); }	// get data	char* getData () throw () { return m_Data; }	// set data	void setData (char* data, uint len) throw (Error);	void setData (uint len) throw (Error); 		// get length	uint getLength () const throw () { return m_Length; }	// get address	SOCKADDR* getAddress () throw () { return (SOCKADDR*)&m_SockAddr; }	// set address	void setAddress (SOCKADDR_IN* pSockAddr) throw (Error);	// get host	string getHost () const throw () { return string(inet_ntoa(m_SockAddr.sin_addr)); }	// set host	void setHost (const string & host) throw () { m_SockAddr.sin_addr.s_addr = inet_addr(host.c_str()); }	// get port 	uint getPort () const throw () { return ntohs(m_SockAddr.sin_port); }	// set port	void setPort (uint port) throw () { m_SockAddr.sin_port = htons(port); }	string toString () const throw ();private :	// buffer length	uint m_Length;	// reading/writing offset	uint m_InputOffset;	uint m_OutputOffset;	// internal buffer	char* m_Data;	// socket address	SOCKADDR_IN m_SockAddr;};#endif

⌨️ 快捷键说明

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