?? test.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;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -