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

📄 test.cpp

📁 .net 方面的开发说明资料。
💻 CPP
字号:
#include <windows.h>
#include <process.h>
#include <stdio.h>
#include <string>

#include "ObjectServer.h"
#include "OpenNet.h"

bool test = true;

// ========================================================

static const GUID CLSID_TEST_SESSION = 
{ 0xe9aa91c9, 0xbb6d, 0x45c7, { 0x80, 0xfa, 0x62, 0x9c, 0x8c, 0x50, 0x58, 0x9f } };

// ========================================================

static
char *tmp1[] = {
	"ECS_CONNECTING",
	"ECS_CONNECTED",
	"ECS_DISCONNECTING",
	"ECS_DISCONNECTED",
	"ECS_LISTENING"
};

static
char *tmp2[] = {
	"SYSTEM_DATA_IN",
	"SYSTEM_DATA_OUT",
	"SYSTEM_CONNECTING",
	"SYSTEM_CONNECTED",
	"SYSTEM_CONNECT_TIMEOUT",
	"SYSTEM_DISCONNECTING",
	"SYSTEM_DISCONNECTED",
	"SYSTEM_LISTENING",
	"SYSTEM_SENT_PROGRESS_BYTES",
	"SYSTEM_SENT_PROGRESS_PERCENTAGE",
	"SYSTEM_SENT_SUCCEEDED",
	"SYSTEM_SENT_FAILED",
	"SYSTEM_TIMEOUT",
	"SYSTEM_IO_ERROR",
	"SYSTEM_NOT_SUPPORTED",
	"SYSTEM_CONNECTION_REQUEST",
	"SYSTEM_RS232_BREAK",
	"SYSTEM_RS232_ERR_BREAK",
	"SYSTEM_RS232_ERR_DNS",
	"SYSTEM_RS232_ERR_FRAME",
	"SYSTEM_RS232_ERR_IOE",
	"SYSTEM_RS232_ERR_MODE",
	"SYSTEM_RS232_ERR_OOP",
	"SYSTEM_RS232_ERR_OVERRUN",
	"SYSTEM_RS232_ERR_PTO",
	"SYSTEM_RS232_ERR_RXOVER",
	"SYSTEM_RS232_ERR_RXPARITY",
	"SYSTEM_RS232_ERR_TXFULL",
	"SYSTEM_RS232_CTS_ON",
	"SYSTEM_RS232_CTS_OFF",
	"SYSTEM_RS232_DSR_ON",
	"SYSTEM_RS232_DSR_OFF",
	"SYSTEM_RS232_RING_ON",
	"SYSTEM_RS232_RING_OFF",
	"SYSTEM_RS232_RLSD_ON",
	"SYSTEM_RS232_RLSD_OFF",
	"SYSTEM_TCPIP_NO_SUPPORT",
	"SYSTEM_TCPIP_CONNECTION_REFUSED",
	"SYSTEM_TCPIP_ADDRESS_UNAVAILABLE",
	"SYSTEM_TCPIP_NET_UNREACHABLE",
	"SYSTEM_TCPIP_NO_BUFFERSPACE",
	"SYSTEM_TCPIP_NOT_CONNECTED",
	"SYSTEM_TCPIP_CONNECTION_TIMEOUT",
	"SYSTEM_TCPIP_SUBSYSTEM_FAILED",
	"SYSTEM_TCPIP_CONNECTION_RESET",
	"SYSTEM_TCPIP_CONNECTION_ABORTED",
	"SYSTEM_TCPIP_NET_RESET",
	"SYSTEM_TCPIP_OPERATION_ABORTED",
	"SYSTEM_TCPIP_UNIMPLEMENTED",
	"SYSTEM_TCPIP_ACCEPT_FAILED",
	"SYSTEM_TCPIP_ACCEPT_TRY_AGAIN",
	"SYSTEM_TCPIP_ACCEPT_WITHDRAWN"
};

static
char *tmp3[] = {
	"POP3_REPLY_OK",
	"POP3_REPLY_ERROR",
	"POP3_REPLY_LISTING",
	"POP3_REPLY_ENDLIST",
	"POP3_USER",
	"POP3_PASS",
	"POP3_NOOP",
	"POP3_STAT",
	"POP3_LIST",
	"POP3_RETR",
	"POP3_DELE",
	"POP3_UIDL",
	"POP3_RSET",
	"POP3_QUIT",
	"POP3_TOP"
};

static
char *tmp4[] = {
	"POP3_LOGGED_IN"
};

// ========================================================

void DLL_CALLCONV
Callback(TRANSPORT_HANDLE a, EpEvent *event, void *data) {
	if (IsEqualGUID(event->protocol, CLSID_SYSTEM_PROTOCOL)) {
		switch(event->msg) {
			case SYSTEM_DATA_OUT :
				printf("DATA_OUT %d\n", event->size);
				break;

			case SYSTEM_CONNECTED :
				printf("CONNECTED\n");
				break;

			case SYSTEM_DISCONNECTED :
				printf("DISCONNECTED\n");
				break;

			default :
				printf("SYSTEM CALLBACK - %s\n", tmp2[event->msg]);
				break;
		};
	}

/*
	if (IsEqualGUID(event->protocol, CLSID_POP3_PROTOCOL))
		printf("POP3 CALLBACK - %s\n", tmp3[event->msg]);

	if (IsEqualGUID(event->protocol, CLSID_POP3_SESSION))
		printf("POP3 SESSION CALLBACK - %s\n", tmp4[event->msg]);
*/
}

// ========================================================

void
ThreadShite(void *data) {
	while (*(bool *)data) {
		while (EpHeartBeat()) ;
		Sleep(1);
	}
}

// ========================================================

int main(int argc,char *argv[]){
	bool thread_runs = true;

	// init opennet

	EpInit();

	// in a console app it's kinda tricky to call the heartbeat
	// function. For now just start a thread and do it in there

	long handle = _beginthread(ThreadShite, 0, &thread_runs);

	// create the transport

	UDPTarget target;
	strcpy(target.address, "localhost");
	target.port = 8000;

	TRANSPORT_HANDLE a = EpCreateTransport("serial port=COM1 baudrate=4800 stopbits=0 bytesize=8 parity=0 options=$2011", Callback, true);
	//EpSetOption(a, UDP_TARGET, &target);

	// add the session to the transport

	//EpConnect(a, "pop3.wxs.nl", 110, 0);

	//Sleep(3000);

	EpSendRawData(a, (unsigned char *)"ATDT123\n", 8, CLSID_NULL_PROTOCOL, 0, 0);

	Sleep(5000);

	EpSendRawData(a, (unsigned char *)"USER flvdberg\n", 12, CLSID_NULL_PROTOCOL, 0, 0);

	Sleep(5000);

	EpSendRawData(a, (unsigned char *)"USER flvdberg\n", 13, CLSID_NULL_PROTOCOL, 0, 0);
	EpSendRawData(a, (unsigned char *)"USER flvdberg\n", 14, CLSID_NULL_PROTOCOL, 0, 0);

	Sleep(5000);

	//EpDisconnect(a);

	//Sleep(3000);

	EpDestroyTransport(a);

	EpFinalize();

	thread_runs = false;
	WaitForSingleObject((HANDLE)handle, INFINITE);

	return 0;
}

⌨️ 快捷键说明

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