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

📄 defaultprotocol.cpp

📁 .net 方面的开发说明资料。
💻 CPP
字号:
// ========================================================
// Default Protocol Handler
//
// Design and Implementation by Floris van den Berg
// ========================================================

#pragma warning (disable : 4275)
#pragma warning (disable : 4786)

#include "OpenNet.h"
#include "Transport.h"
#include "DefaultProtocol.h"

// --------------------------------------------------------

struct MemberData {
	TRANSPORT_HANDLE transport;
};
	
// --------------------------------------------------------

static void *DLL_CALLCONV
Create(TRANSPORT_HANDLE transport) {
	MemberData *data = new MemberData;
	data->transport = transport;
	return data;
}
	
static void DLL_CALLCONV
Receive(void *self, unsigned char *data, int size) {
}

static void DLL_CALLCONV
Send(void *self, EpAction *action) {
}

static void DLL_CALLCONV
Reset(void *self) {
}

static void DLL_CALLCONV
Destroy(void *self) {
	delete (MemberData *)self;
}

static int DLL_CALLCONV
GetName(void *self, char *name, int size) {
	if ((name) && (size >= 7))
		strcpy(name, "System");

	return 7;
}

static int DLL_CALLCONV
GetMessageName(void *self, int msg, char *name, int size) {
	switch(msg) {
		case SYSTEM_DATA_IN :
			if ((name) && (size >= 15))
				strcpy(name, "SYSTEM_DATA_IN");

			return 14;

		case SYSTEM_DATA_OUT :
			if ((name) && (size >= 16))
				strcpy(name, "SYSTEM_DATA_OUT");

			return 15;

		case SYSTEM_CONNECTING :
			if ((name) && (size >= 18))
				strcpy(name, "SYSTEM_CONNECTING");

			return 17;

		case SYSTEM_CONNECTED :
			if ((name) && (size >= 17))
				strcpy(name, "SYSTEM_CONNECTED");

			return 16;

		case SYSTEM_CONNECT_TIMEOUT :
			if ((name) && (size >= 23))
				strcpy(name, "SYSTEM_CONNECT_TIMEOUT");

			return 22;

		case SYSTEM_DISCONNECTING :
			if ((name) && (size >= 21))
				strcpy(name, "SYSTEM_DISCONNECTING");

			return 20;

		case SYSTEM_DISCONNECTED :
			if ((name) && (size >= 20))
				strcpy(name, "SYSTEM_DISCONNECTED");

			return 19;

		case SYSTEM_LISTENING :
			if ((name) && (size >= 17))
				strcpy(name, "SYSTEM_LISTENING");

			return 16;

		case SYSTEM_SENT_PROGRESS_BYTES :
			if ((name) && (size >= 27))
				strcpy(name, "SYSTEM_SENT_PROGRESS_BYTES");

			return 26;

		case SYSTEM_SENT_PROGRESS_PERCENTAGE :
			if ((name) && (size >= 32))
				strcpy(name, "SYSTEM_SENT_PROGRESS_PERCENTAGE");

			return 31;

		case SYSTEM_SENT_SUCCEEDED :
			if ((name) && (size >= 22))
				strcpy(name, "SYSTEM_SENT_SUCCEEDED");

			return 21;

		case SYSTEM_SENT_FAILED :
			if ((name) && (size >= 19))
				strcpy(name, "SYSTEM_SENT_FAILED");

			return 18;

		case SYSTEM_TIMEOUT :
			if ((name) && (size >= 15))
				strcpy(name, "SYSTEM_TIMEOUT");

			return 14;

		case SYSTEM_IO_ERROR :
			if ((name) && (size >= 16))
				strcpy(name, "SYSTEM_IO_ERROR");

			return 15;

		case SYSTEM_NOT_SUPPORTED :
			if ((name) && (size >= 21))
				strcpy(name, "SYSTEM_NOT_SUPPORTED");

			return 20;

		case SYSTEM_CONNECTION_REQUEST :
			if ((name) && (size >= 26))
				strcpy(name, "SYSTEM_CONNECTION_REQUEST");

			return 25;

		case SYSTEM_RS232_BREAK :
			if ((name) && (size >= 19))
				strcpy(name, "SYSTEM_RS232_BREAK");

			return 18;

		case SYSTEM_RS232_ERR_BREAK :
			if ((name) && (size >= 23))
				strcpy(name, "SYSTEM_RS232_ERR_BREAK");

			return 22;

		case SYSTEM_RS232_ERR_DNS :
			if ((name) && (size >= 21))
				strcpy(name, "SYSTEM_RS232_ERR_DNS");

			return 20;

		case SYSTEM_RS232_ERR_FRAME :
			if ((name) && (size >= 23))
				strcpy(name, "SYSTEM_RS232_ERR_FRAME");

			return 22;

		case SYSTEM_RS232_ERR_IOE :
			if ((name) && (size >= 21))
				strcpy(name, "SYSTEM_RS232_ERR_IOE");

			return 20;

		case SYSTEM_RS232_ERR_MODE :
			if ((name) && (size >= 22))
				strcpy(name, "SYSTEM_RS232_ERR_MODE");

			return 21;

		case SYSTEM_RS232_ERR_OOP :
			if ((name) && (size >= 21))
				strcpy(name, "SYSTEM_RS232_ERR_OOP");

			return 20;

		case SYSTEM_RS232_ERR_OVERRUN :
			if ((name) && (size >= 25))
				strcpy(name, "SYSTEM_RS232_ERR_OVERRUN");

			return 24;

		case SYSTEM_RS232_ERR_PTO :
			if ((name) && (size >= 21))
				strcpy(name, "SYSTEM_RS232_ERR_PTO");

			return 20;

		case SYSTEM_RS232_ERR_RXOVER :
			if ((name) && (size >= 24))
				strcpy(name, "SYSTEM_RS232_ERR_RXOVER");

			return 23;

		case SYSTEM_RS232_ERR_RXPARITY :
			if ((name) && (size >= 26))
				strcpy(name, "SYSTEM_RS232_ERR_RXPARITY");

			return 25;

		case SYSTEM_RS232_ERR_TXFULL :
			if ((name) && (size >= 24))
				strcpy(name, "SYSTEM_RS232_ERR_TXFULL");

			return 23;

		case SYSTEM_RS232_CTS_ON :
			if ((name) && (size >= 20))
				strcpy(name, "SYSTEM_RS232_CTS_ON");

			return 19;

		case SYSTEM_RS232_CTS_OFF :
			if ((name) && (size >= 21))
				strcpy(name, "SYSTEM_RS232_CTS_OFF");

			return 20;

		case SYSTEM_RS232_DSR_ON :
			if ((name) && (size >= 20))
				strcpy(name, "SYSTEM_RS232_DSR_ON");

			return 19;

		case SYSTEM_RS232_DSR_OFF :
			if ((name) && (size >= 21))
				strcpy(name, "SYSTEM_RS232_DSR_OFF");

			return 20;

		case SYSTEM_RS232_RING_ON :
			if ((name) && (size >= 21))
				strcpy(name, "SYSTEM_RS232_RING_ON");

			return 20;

		case SYSTEM_RS232_RING_OFF :
			if ((name) && (size >= 22))
				strcpy(name, "SYSTEM_RS232_RING_OFF");

			return 21;

		case SYSTEM_RS232_RLSD_ON :
			if ((name) && (size >= 21))
				strcpy(name, "SYSTEM_RS232_RLSD_ON");

			return 20;

		case SYSTEM_RS232_RLSD_OFF :
			if ((name) && (size >= 22))
				strcpy(name, "SYSTEM_RS232_RLSD_OFF");

			return 21;
			
		case SYSTEM_TCPIP_NO_SUPPORT :
			if ((name) && (size >= 24))
				strcpy(name, "SYSTEM_TCPIP_NO_SUPPORT");

			return 23;

		case SYSTEM_TCPIP_CONNECTION_REFUSED :
			if ((name) && (size >= 32))
				strcpy(name, "SYSTEM_TCPIP_CONNECTION_REFUSED");

			return 31;

		case SYSTEM_TCPIP_ADDRESS_UNAVAILABLE :
			if ((name) && (size >= 33))
				strcpy(name, "SYSTEM_TCPIP_ADDRESS_UNAVAILABLE");

			return 32;

		case SYSTEM_TCPIP_NET_UNREACHABLE :
			if ((name) && (size >= 29))
				strcpy(name, "SYSTEM_TCPIP_NET_UNREACHABLE");

			return 28;

		case SYSTEM_TCPIP_NO_BUFFERSPACE :
			if ((name) && (size >= 28))
				strcpy(name, "SYSTEM_TCPIP_NO_BUFFERSPACE");

			return 27;

		case SYSTEM_TCPIP_NOT_CONNECTED :
			if ((name) && (size >= 27))
				strcpy(name, "SYSTEM_TCPIP_NOT_CONNECTED");

			return 26;

		case SYSTEM_TCPIP_CONNECTION_TIMEOUT :
			if ((name) && (size >= 32))
				strcpy(name, "SYSTEM_TCPIP_CONNECTION_TIMEOUT");

			return 31;

		case SYSTEM_TCPIP_SUBSYSTEM_FAILED :
			if ((name) && (size >= 30))
				strcpy(name, "SYSTEM_TCPIP_SUBSYSTEM_FAILED");

			return 29;

		case SYSTEM_TCPIP_CONNECTION_RESET :
			if ((name) && (size >= 30))
				strcpy(name, "SYSTEM_TCPIP_CONNECTION_RESET");

			return 29;

		case SYSTEM_TCPIP_CONNECTION_ABORTED :
			if ((name) && (size >= 32))
				strcpy(name, "SYSTEM_TCPIP_CONNECTION_ABORTED");

			return 31;

		case SYSTEM_TCPIP_NET_RESET :
			if ((name) && (size >= 23))
				strcpy(name, "SYSTEM_TCPIP_NET_RESET");

			return 22;

		case SYSTEM_TCPIP_OPERATION_ABORTED :
			if ((name) && (size >= 31))
				strcpy(name, "SYSTEM_TCPIP_OPERATION_ABORTED");

			return 30;

		case SYSTEM_TCPIP_UNIMPLEMENTED :
			if ((name) && (size >= 27))
				strcpy(name, "SYSTEM_TCPIP_UNIMPLEMENTED");

			return 25;

		case SYSTEM_TCPIP_ACCEPT_FAILED :
			if ((name) && (size >= 27))
				strcpy(name, "SYSTEM_TCPIP_ACCEPT_FAILED");
			
			return 26;

		case SYSTEM_TCPIP_ACCEPT_TRY_AGAIN :
			if ((name) && (size >= 30))
				strcpy(name, "SYSTEM_TCPIP_ACCEPT_TRY_AGAIN");

			return 29;

		case SYSTEM_TCPIP_ACCEPT_WITHDRAWN :
			if ((name) && (size >= 30))
				strcpy(name, "SYSTEM_TCPIP_ACCEPT_WITHDRAWN");

			return 29;
	};

	return 0;
}

// --------------------------------------------------------
// Make protocol available for use
// --------------------------------------------------------

GUID DLL_CALLCONV
SystemProtocolInit(int count, Protocol *protocol) {
	protocol->create = Create;
	protocol->destroy = Destroy;
	protocol->receive = Receive;
	protocol->send = Send;
	protocol->reset = Reset;
	protocol->getname = GetName;
	protocol->getmessagename = GetMessageName;
	return CLSID_SYSTEM_PROTOCOL;
}

⌨️ 快捷键说明

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